From 1dd6a2019a0909f75793a85cb93bdc31c9d16f34 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Tue, 26 Apr 2022 19:25:52 +0200 Subject: [PATCH] asyncio: sql_db: maybe fix "no current event loop in thread" see https://github.com/spesmilo/electrum/issues/5376 crash report for electrum 4.2.1: ``` Traceback (most recent call last): File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/Electrum/kivy/base.py", line 347, in mainloop File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/Electrum/kivy/base.py", line 391, in idle File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/Electrum/kivy/base.py", line 342, in dispatch_input File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/Electrum/kivy/base.py", line 308, in post_dispatch_input File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/Electrum/kivy/uix/behaviors/button.py", line 179, in on_touch_up File "kivy/_event.pyx", line 720, in kivy._event.EventDispatcher.dispatch File "kivy/_event.pyx", line 1263, in kivy._event.EventObservers.dispatch File "kivy/_event.pyx", line 1147, in kivy._event.EventObservers._dispatch File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/Electrum/kivy/lang/builder.py", line 57, in custom_callback File "", line 39, in File "/home/user/wspace/electrum/.buildozer/android/app/electrum/gui/kivy/uix/dialogs/settings.py", line 173, in cb File "kivy/properties.pyx", line 498, in kivy.properties.Property.__set__ File "kivy/properties.pyx", line 545, in kivy.properties.Property.set File "kivy/properties.pyx", line 600, in kivy.properties.Property.dispatch File "kivy/_event.pyx", line 1263, in kivy._event.EventObservers.dispatch File "kivy/_event.pyx", line 1169, in kivy._event.EventObservers._dispatch File "/home/user/wspace/electrum/.buildozer/android/app/electrum/gui/kivy/main_window.py", line 206, in on_use_gossip File "/home/user/wspace/electrum/.buildozer/android/app/electrum/network.py", line 368, in start_gossip File "/home/user/wspace/electrum/.buildozer/android/app/electrum/channel_db.py", line 308, in __init__ File "/home/user/wspace/electrum/.buildozer/android/app/electrum/sql_db.py", line 30, in __init__ File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/asyncio/locks.py", line 260, in __init__ File "/home/user/wspace/electrum/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/asyncio/events.py", line 639, in get_event_loop RuntimeError: There is no current event loop in thread 'GUI'. ``` --- electrum/sql_db.py | 1 + 1 file changed, 1 insertion(+) diff --git a/electrum/sql_db.py b/electrum/sql_db.py index a6459fc06..3d9dba7de 100644 --- a/electrum/sql_db.py +++ b/electrum/sql_db.py @@ -26,6 +26,7 @@ class SqlDB(Logger): def __init__(self, asyncio_loop: asyncio.BaseEventLoop, path, commit_interval=None): Logger.__init__(self) self.asyncio_loop = asyncio_loop + asyncio.set_event_loop(asyncio_loop) self.stopping = False self.stopped_event = asyncio.Event() self.path = path