horizon-eda / horizon

Horizon is a free EDA package
https://horizon-eda.org/
GNU General Public License v3.0
1.12k stars 83 forks source link

Crash when downloading (core) pool #677

Open oxplot opened 2 years ago

oxplot commented 2 years ago

Going into pool management screen and downloading the core pool results in a crash soon after the repository cloning starts:

Screenshot from 2022-07-24 01-58-33

The only output on the terminal is:

Gdk-Message: 01:51:48.623: Error flushing display: Resource temporarily unavailable

I'm running 2.3.1 Iceblink on Arch Linux on Gnome with Wayland. Searching around the web seems to suggest that wayland is to blame but maybe apps can do a workaround if that's the case.

carrotIndustries commented 2 years ago

I can't reproduce this on weston. Can you provide a backtrace?

oxplot commented 2 years ago

I ran it with gdb on a non-debug build just to see if there was anything useful (before re-building the whole thing). Looks like the app handles the error and exits:

[Thread 0x7fffe19ff640 (LWP 316350) exited]
Gdk-Message: 02:45:57.463: Error flushing display: Resource temporarily unavailable
[Thread 0x7fffe11fe640 (LWP 316342) exited]
[Thread 0x7fffe37fe640 (LWP 316278) exited]
[Thread 0x7fffe3fff640 (LWP 316277) exited]
[Thread 0x7ffff1475640 (LWP 316275) exited]
[Thread 0x7ffff24b6640 (LWP 316273) exited]
[Thread 0x7ffff4322c00 (LWP 315907) exited]
[Thread 0x7ffff0c31640 (LWP 316276) exited]
[New process 315907]
[Inferior 1 (process 315907) exited with code 01]
(gdb) backtrace
No stack.
(gdb)

Do you have any instructions on how to further debug this?

carrotIndustries commented 2 years ago

You might try setting a breakpoint on exit. If that doesn't work, rebuild gtk with debug symbols and set the breakpoint there: https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gdk/wayland/gdkeventsource.c#L67

oxplot commented 2 years ago

Thanks. Here's a backtrace. Had to run the download a few times to hit it:

Thread 1 "horizon-eda" hit Breakpoint 1, gdk_event_source_prepare (base=base@entry=0x101348e50, timeout=timeout@entry=0x7fffffffd984) at ../gtk/gdk/wayland/gdkeventsource.c:67
67            g_message ("Error flushing display: %s", g_strerror (errno));
(gdb) bt -full
#0  gdk_event_source_prepare (base=base@entry=0x101348e50, timeout=timeout@entry=0x7fffffffd984)
    at ../gtk/gdk/wayland/gdkeventsource.c:67
        source = 0x101348e50
        display = 0x101304050
        __func__ = "gdk_event_source_prepare"
#1  0x00007ffff67f583b in g_main_context_prepare (context=0x101311f20, priority=0x7fffffffda48) at ../glib/glib/gmain.c:3737
        begin_time_nsec = 15552474429618
        result = <optimized out>
        prepare = 0x7ffff6b6a380 <gdk_event_source_prepare>
        source_timeout = -1
        i = <optimized out>
        n_ready = 0
        current_priority = 2147483647
        source = 0x101348e50
        iter = {context = 0x101311f20, may_modify = 1, current_list = 0x7fffe4008e60 = {0x7fffe4008e40}, source = 0x101348e50}
#2  0x00007ffff684bdc6 in g_main_context_iterate.constprop.0
    (context=context@entry=0x101311f20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../glib/glib/gmain.c:4191
        max_priority = 2147483647
        timeout = 16
        some_ready = <optimized out>
        nfds = <optimized out>
        allocated_nfds = 5
        fds = <optimized out>
        begin_time_nsec = 15552474429467
#3  0x00007ffff67f3392 in g_main_context_iteration (context=context@entry=0x101311f20, may_block=may_block@entry=1)
    at ../glib/glib/gmain.c:4276
        retval = <optimized out>
#4  0x00007ffff6a0f30e in g_application_run (application=0x1012b2210, argc=<optimized out>, argv=0x7fffffffdc58)
    at ../glib/gio/gapplication.c:2569
        arguments = 0x1013e3980
        status = 0
        context = 0x101311f20
        acquired_context = <optimized out>
        __func__ = "g_application_run"
#5  0x00000001002836d7 in  ()
#6  0x00007ffff6029290 in __libc_start_call_main
     (main=main@entry=0x100283670, argc=argc@entry=1, argv=argv@entry=0x7fffffffdc58) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>

                      unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488346200, 2140561145519421033, 0, 140737488346216, 4313334208, 140737354125312, -2140561144332274071, -2140580912151513495}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fffffffdc58, 0x1}, data = {prev = 0x0, cleanup = 0x0, canceltype = -9128}}}
        not_first_call = <optimized out>
#7  0x00007ffff602934a in __libc_start_main_impl
     (main=0x100283670, argc=1, argv=0x7fffffffdc58, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdc48) at ../csu/libc-start.c:389
#8  0x000000010029e565 in  ()
(gdb)
oxplot commented 2 years ago

Also, this may be relevant: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3405#note_964698 given the fast pace of git updates that are shown when downloading a pool.

carrotIndustries commented 2 years ago

Hm, that's less helpful than I was hoping for. Can you run inf thr to check what the other threads are doing? My suspicion is that one of the background threads might be calling into Gtk even though it shouldn't.

oxplot commented 2 years ago

Here it goes:

(gdb) inf thr
  Id   Target Id                                       Frame
* 1    Thread 0x7ffff4311c00 (LWP 3540) "horizon-eda"  gdk_event_source_prepare (base=base@entry=0x1013483a0,
    timeout=timeout@entry=0x7fffffffd984) at ../gtk/gdk/wayland/gdkeventsource.c:67
  2    Thread 0x7ffff24b6640 (LWP 3553) "gmain"        0x00007ffff6105c3f in __GI___poll (fds=0x10130b240, nfds=2,
    timeout=3996) at ../sysdeps/unix/sysv/linux/poll.c:29
  4    Thread 0x7ffff1475640 (LWP 3555) "gdbus"        0x00007ffff6105c3f in __GI___poll (fds=0x1013a0a40, nfds=7, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
  5    Thread 0x7ffff0c31640 (LWP 3556) "dconf worker" 0x00007ffff6105c3f in __GI___poll (fds=0x1013455b0, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
  6    Thread 0x7fffe3fff640 (LWP 3557) "ZMQbg/Reaper" 0x00007ffff6111c9e in epoll_wait (epfd=17, events=0x7fffe3ffdca0,
    maxevents=256, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
  7    Thread 0x7fffe37fe640 (LWP 3558) "ZMQbg/IO/0"   0x00007ffff6111c9e in epoll_wait (epfd=19, events=0x7fffe37fcca0,
    maxevents=256, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
  25   Thread 0x7fffe11fe640 (LWP 3631) "horizon-eda"  0x00007ffff5a20f3e in ?? () from /usr/lib/libz.so.1
oxplot commented 2 years ago

And backtrace for all threads:

(gdb) thread apply all bt -full

Thread 25 (Thread 0x7fffe11fe640 (LWP 3631) "horizon-eda"):
#0  0x00007ffff5a20f3e in  () at /usr/lib/libz.so.1
#1  0x00007ffff5a2aeab in inflate () at /usr/lib/libz.so.1
#2  0x00007ffff64ce3e5 in git_zstream_get_output_chunk (out=<optimized out>, out_len=0x7fffe11fb538, zstream=0x7fffc81166c0) at /usr/src/debug/libgit2-1.4.4/src/zstream.c:123
        in_used = <optimized out>
#3  0x00007ffff646b858 in git_packfile_stream_read (obj=0x7fffc81166b0, buffer=0x7fffc8117570, len=<optimized out>) at /usr/src/debug/libgit2-1.4.4/src/zstream.c:72
        window_len = 1609
        in = <optimized out>
        error = 0
#4  0x00007ffff644bd40 in read_object_stream (stream=<optimized out>, idx=<optimized out>) at /usr/src/debug/libgit2-1.4.4/src/indexer.c:295
        read = <optimized out>
        stream = 0x7fffc81166b0
        entry_start = 23427517
        entry_size = 663
        type = GIT_OBJECT_OFS_DELTA
        w = 0x0
        error = <optimized out>
        error = <optimized out>
        mwf = <optimized out>
#5  read_stream_object (stats=0x7fffc815b6e8, idx=0x7fffc8116660) at /usr/src/debug/libgit2-1.4.4/src/indexer.c:776
        stream = 0x7fffc81166b0
        entry_start = 23427517
        entry_size = 663
        type = GIT_OBJECT_OFS_DELTA
        w = 0x0
        error = <optimized out>
        error = <optimized out>
        mwf = <optimized out>
#6  git_indexer_append (idx=<optimized out>, data=<optimized out>, size=<optimized out>, stats=<optimized out>) at /usr/src/debug/libgit2-1.4.4/src/indexer.c:878
        error = <optimized out>
        mwf = <optimized out>
#7  0x00007ffff64bec63 in git_smart__download_pack (transport=0x7fffc81d2720, repo=<optimized out>, stats=0x7fffc815b6e8) at /usr/src/debug/libgit2-1.4.4/src/transports/smart_protocol.c:599
        pkt = 0x7fffc818ee60
        t = 0x7fffc81d2720
        buf = 0x7fffc81d2908
        odb = 0x7fffc812f3e0
        writepack = 0x7fffc810f380
        error = 0
        npp = {callback = 0x100861900, payload = 0x102269350, stats = 0x7fffc815b6e8, last_fired_bytes = 23424868}
        progress_cb = 0x100861900
        progress_payload = <optimized out>
#8  0x00007ffff648a8bd in git_fetch_download_pack (remote=0x7fffc815b5f0) at /usr/src/debug/libgit2-1.4.4/src/fetch.c:199
        t = <optimized out>
        to_active = <optimized out>
        specs = {_alloc_size = 0, _cmp = 0x0, contents = 0x0, length = 0, flags = 1}
        refs = {_alloc_size = 0, _cmp = 0x7ffff647dd30 <remote_head_cmp>, contents = 0x0, length = 0, flags = 0}
        i = <optimized out>
        error = <optimized out>
#9  git_remote__download (remote=remote@entry=0x7fffc815b5f0, refspecs=refspecs@entry=0x0, opts=opts@entry=0x7fffe11fbb20) at /usr/src/debug/libgit2-1.4.4/src/remote.c:1309
        to_active = <optimized out>
        specs = {_alloc_size = 0, _cmp = 0x0, contents = 0x0, length = 0, flags = 1}
        refs = {_alloc_size = 0, _cmp = 0x7ffff647dd30 <remote_head_cmp>, contents = 0x0, length = 0, flags = 0}
        i = <optimized out>
        error = <optimized out>
#10 0x00007ffff648ae6a in git_remote_fetch (remote=0x7fffc815b5f0, refspecs=0x0, opts=0x7fffe11fbb20, reflog_message=0x7fffc8187eb0 "clone: from https://github.com/horizon-eda/horizon-pool.git") at /usr/src/debug/libgit2-1.4.4/src/remote.c:1373
        error = 0
        update_fetchhead = 0
        tagopt = GIT_REMOTE_DOWNLOAD_TAGS_ALL
        prune = false
        reflog_msg_buf = {ptr = 0x7ffff650ed50 <git_str.initstr> "", asize = 0, size = 0}
        connect_opts = {version = 1, callbacks = {version = 1, sideband_progress = 0x0, completion = 0x0, credentials = 0x0, certificate_check = 0x0, transfer_progress = 0x100861900, update_tips = 0x0, pack_progress = 0x0, push_transfer_progress = 0x0, push_update_reference = 0x0, push_negotiation = 0x0, transport = 0x0, remote_ready = 0x0, payload = 0x102269350, resolve_url = 0x0}, proxy_opts = {version = 1, type = GIT_PROXY_NONE, url = 0x0, credentials = 0x0, certificate_check = 0x0, payload = 0x0}, follow_redirects = GIT_REMOTE_REDIRECT_INITIAL, custom_headers = {strings = 0x0, count = 0}}
#11 0x00007ffff641796a in clone_into (branch=<optimized out>, co_opts=0x7fffe11fbbf8, opts=0x7fffe11fbc88, _remote=0x7fffc819a6e0, repo=0x7fffc80fa8c0) at /usr/src/debug/libgit2-1.4.4/src/clone.c:415
        remote = 0x7fffc815b5f0
        error = <optimized out>
        reflog_message = {ptr = 0x7fffc8187eb0 "clone: from https://github.com/horizon-eda/horizon-pool.git", asize = 64, size = 59}
        fetch_opts = {version = 1, callbacks = {version = 1, sideband_progress = 0x0, completion = 0x0, credentials = 0x0, certificate_check = 0x0, transfer_progress = 0x100861900, update_tips = 0x0, pack_progress = 0x0, push_transfer_progress = 0x0, push_update_reference = 0x0, push_negotiation = 0x0, transport = 0x0, remote_ready = 0x0, payload = 0x102269350, resolve_url = 0x0}, prune = GIT_FETCH_PRUNE_UNSPECIFIED, update_fetchhead = 0, download_tags = GIT_REMOTE_DOWNLOAD_TAGS_ALL, proxy_opts = {version = 1, type = GIT_PROXY_NONE, url = 0x0, credentials = 0x0, certificate_check = 0x0, payload = 0x0}, follow_redirects = 0, custom_headers = {strings = 0x0, count = 0}}
        clone_local = <optimized out>
        link = <optimized out>
        error = 0
        repo = 0x7fffc80fa8c0
        origin = 0x7fffc819a6e0
        options = {version = 1, checkout_opts = {version = 1, checkout_strategy = 1, disable_filters = 0, dir_mode = 0, file_mode = 0, file_open_flags = 0, notify_flags = 0, notify_cb = 0x0, notify_payload = 0x0, progress_cb = 0x100861560, progress_payload = 0x102269350, paths = {strings = 0x0, count = 0}, baseline = 0x0, baseline_index = 0x0, target_directory = 0x0, ancestor_label = 0x0, our_label = 0x0, their_label = 0x0, perfdata_cb = 0x0, perfdata_payload = 0x0}, fetch_opts = {version = 1, callbacks = {version = 1, sideband_progress = 0x0, completion = 0x0, credentials = 0x0, certificate_check = 0x0, transfer_progress = 0x100861900, update_tips = 0x0, pack_progress = 0x0, push_transfer_progress = 0x0, push_update_reference = 0x0, push_negotiation = 0x0, transport = 0x0, remote_ready = 0x0, payload = 0x102269350, resolve_url = 0x0}, prune = GIT_FETCH_PRUNE_UNSPECIFIED, update_fetchhead = 1, download_tags = GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, proxy_opts = {version = 1, type = GIT_PROXY_NONE, url = 0x0, credentials = 0x0, certificate_check = 0x0, payload = 0x0}, follow_redirects = 0, custom_headers = {strings = 0x0, count = 0}}, bare = 0, local = GIT_CLONE_LOCAL_AUTO, checkout_branch = 0x0, repository_cb = 0x0, repository_cb_payload = 0x0, remote_cb = 0x0, remote_cb_payload = 0x0}
        rmdir_flags = 17
        repository_cb = <optimized out>
#12 git__clone (out=0x7fffe11fd280, url=<optimized out>, local_path=0x7fffc8137200 "/home/mike/horizon-pools/horizon-eda/horizon-pool/.remote", _options=<optimized out>, use_existing=<optimized out>) at /usr/src/debug/libgit2-1.4.4/src/clone.c:504
        clone_local = <optimized out>
        link = <optimized out>
        error = 0
        repo = 0x7fffc80fa8c0
        origin = 0x7fffc819a6e0
        options = {version = 1, checkout_opts = {version = 1, checkout_strategy = 1, disable_filters = 0, dir_mode = 0, file_mode = 0, file_open_flags = 0, notify_flags = 0, notify_cb = 0x0, notify_payload = 0x0, progress_cb = 0x100861560, progress_payload = 0x102269350, paths = {strings = 0x0, count = 0}, baseline = 0x0, baseline_index = 0x0, target_directory = 0x0, ancestor_label = 0x0, our_label = 0x0, their_label = 0x0, perfdata_cb = 0x0, perfdata_payload = 0x0}, fetch_opts = {version = 1, callbacks = {version = 1, sideband_progress = 0x0, completion = 0x0, credentials = 0x0, certificate_check = 0x0, transfer_progress = 0x100861900, update_tips = 0x0, pack_progress = 0x0, push_transfer_progress = 0x0, push_update_reference = 0x0, push_negotiation = 0x0, transport = 0x0, remote_ready = 0x0, payload = 0x102269350, resolve_url = 0x0}, prune = GIT_FETCH_PRUNE_UNSPECIFIED, update_fetchhead = 1, download_tags = GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, proxy_opts = {version = 1, type = GIT_PROXY_NONE, url = 0x0, credentials = 0x0, certificate_check = 0x0, payload = 0x0}, follow_redirects = 0, custom_headers = {strings = 0x0, count = 0}}, bare = 0, local = GIT_CLONE_LOCAL_AUTO, checkout_branch = 0x0, repository_cb = 0x0, repository_cb_payload = 0x0, remote_cb = 0x0, remote_cb_payload = 0x0}
        rmdir_flags = 17
        repository_cb = <optimized out>
#13 0x0000000100862aab in  ()
#14 0x000000010085f137 in  ()
#15 0x00007ffff7cd6183 in std::execute_native_thread_routine(void*) (__p=0x1022ff1b0) at /usr/src/debug/gcc/libstdc++-v3/src/c++11/thread.cc:82
#16 0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736970352192, -7456370708868191495, 140737488340094, 0, 140737488340095, 140736961961984, 7456382527600110329, 7456353810705984249}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#17 0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 7 (Thread 0x7fffe37fe640 (LWP 3558) "ZMQbg/IO/0"):
#0  0x00007ffff6111c9e in epoll_wait (epfd=19, events=0x7fffe37fcca0, maxevents=256, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
        sc_ret = -4
        sc_cancel_oldtype = 0
#1  0x00007ffff65e302f in  () at /usr/lib/libzmq.so.5
#2  0x00007ffff6624e7f in  () at /usr/lib/libzmq.so.5
#3  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737010198080, -7456370708868191495, 140737488345022, 0, 140737488345023, 140737001807872, 7456378404431506169, 7456353810705984249}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#4  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 6 (Thread 0x7fffe3fff640 (LWP 3557) "ZMQbg/Reaper"):
#0  0x00007ffff6111c9e in epoll_wait (epfd=17, events=0x7fffe3ffdca0, maxevents=256, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
        sc_ret = -4
        sc_cancel_oldtype = 0
#1  0x00007ffff65e302f in  () at /usr/lib/libzmq.so.5
#2  0x00007ffff6624e7f in  () at /usr/lib/libzmq.so.5
#3  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737018590784, -7456370708868191495, 140737488345086, 0, 140737488345087, 140737010200576, 7456379504480004857, 7456353810705984249}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#4  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 5 (Thread 0x7ffff0c31640 (LWP 3556) "dconf worker"):
#0  0x00007ffff6105c3f in __GI___poll (fds=0x1013455b0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
#1  0x00007ffff684bf68 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x1013455b0, timeout=<optimized out>, context=0x101345670) at ../glib/glib/gmain.c:4516
        ret = <optimized out>
        errsv = <optimized out>
        poll_func = 0x7ffff67fb9f0 <g_poll>
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 1
        allocated_nfds = <optimized out>
        fds = 0x1013455b0
        begin_time_nsec = 220565776808
#2  g_main_context_iterate.constprop.0 (context=context@entry=0x101345670, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 1
        allocated_nfds = <optimized out>
        fds = 0x1013455b0
        begin_time_nsec = 220565776808
#3  0x00007ffff67f3392 in g_main_context_iteration (context=0x101345670, may_block=1) at ../glib/glib/gmain.c:4276
        retval = <optimized out>
#4  0x00007ffff7fb4ebe in  () at /usr/lib/gio/modules/libdconfsettings.so
#5  0x00007ffff6825405 in g_thread_proxy (data=0x1012ca1e0) at ../glib/glib/gthread.c:827
        thread = 0x1012ca1e0
        __func__ = "g_thread_proxy"
#6  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737232705088, -7456370708868191495, 140737488343326, 0, 140737488343327, 140737224314880, 7456351154474625785, 7456353810705984249}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 4 (Thread 0x7ffff1475640 (LWP 3555) "gdbus"):
#0  0x00007ffff6105c3f in __GI___poll (fds=0x1013a0a40, nfds=7, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
#1  0x00007ffff684bf68 in g_main_context_poll (priority=<optimized out>, n_fds=7, fds=0x1013a0a40, timeout=<optimized out>, context=0x7fffe400b620) at ../glib/glib/gmain.c:4516
        ret = <optimized out>
        errsv = <optimized out>
        poll_func = 0x7ffff67fb9f0 <g_poll>
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 7
        allocated_nfds = <optimized out>
        fds = 0x1013a0a40
        begin_time_nsec = 250776937504
#2  g_main_context_iterate.constprop.0 (context=0x7fffe400b620, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 7
        allocated_nfds = <optimized out>
        fds = 0x1013a0a40
        begin_time_nsec = 250776937504
#3  0x00007ffff67f51cf in g_main_loop_run (loop=0x7fffe400b710) at ../glib/glib/gmain.c:4411
        __func__ = "g_main_loop_run"
#4  0x00007ffff6a45acc in gdbus_shared_thread_func (user_data=0x7fffe400b5f0) at ../glib/gio/gdbusprivate.c:282
        data = 0x7fffe400b5f0
#5  0x00007ffff6825405 in g_thread_proxy (data=0x7fffe4001580) at ../glib/glib/gthread.c:827
        thread = 0x7fffe4001580
        __func__ = "g_thread_proxy"
#6  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737241372224, -7456370708868191495, 140737250018798, 0, 140737250018799, 140737232982016, 7456347819432520441, 7456353810705984249}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 2 (Thread 0x7ffff24b6640 (LWP 3553) "gmain"):
#0  0x00007ffff6105c3f in __GI___poll (fds=0x10130b240, nfds=2, timeout=3996) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
#1  0x00007ffff684bf68 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x10130b240, timeout=<optimized out>, context=0x10130a900) at ../glib/glib/gmain.c:4516
        ret = <optimized out>
        errsv = <optimized out>
        poll_func = 0x7ffff67fb9f0 <g_poll>
        max_priority = 2147483647
        timeout = 3996
        some_ready = <optimized out>
        nfds = 2
        allocated_nfds = <optimized out>
        fds = 0x10130b240
        begin_time_nsec = 253945173627
#2  g_main_context_iterate.constprop.0 (context=context@entry=0x10130a900, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
        max_priority = 2147483647
        timeout = 3996
        some_ready = <optimized out>
        nfds = 2
        allocated_nfds = <optimized out>
        fds = 0x10130b240
        begin_time_nsec = 253945173627
#3  0x00007ffff67f3392 in g_main_context_iteration (context=0x10130a900, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4276
        retval = <optimized out>
#4  0x00007ffff67f33e2 in glib_worker_main (data=<optimized out>) at ../glib/glib/gmain.c:6178
#5  0x00007ffff6825405 in g_thread_proxy (data=0x10130ac00) at ../glib/glib/gthread.c:827
        thread = 0x10130ac00
        __func__ = "g_thread_proxy"
#6  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737258415680, -7456370708868191495, 140737488344078, 0, 140737488344079, 140737250025472, 7456345586586397433, 7456353810705984249}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 1 (Thread 0x7ffff4311c00 (LWP 3540) "horizon-eda"):
#0  gdk_event_source_prepare (base=base@entry=0x1013483a0, timeout=timeout@entry=0x7fffffffd984) at ../gtk/gdk/wayland/gdkeventsource.c:67
        source = 0x1013483a0
        display = 0x101304050
        __func__ = "gdk_event_source_prepare"
#1  0x00007ffff67f583b in g_main_context_prepare (context=0x101311f20, priority=0x7fffffffda48) at ../glib/glib/gmain.c:3737
        begin_time_nsec = 257102421312
        result = <optimized out>
        prepare = 0x7ffff6b6a380 <gdk_event_source_prepare>
        source_timeout = -1
        i = <optimized out>
        n_ready = 0
        current_priority = 2147483647
        source = 0x1013483a0
        iter = {context = 0x101311f20, may_modify = 1, current_list = 0x7fffe4008e60 = {0x7fffe4008e40}, source = 0x1013483a0}
#2  0x00007ffff684bdc6 in g_main_context_iterate.constprop.0 (context=context@entry=0x101311f20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4191
        max_priority = 2147483647
        timeout = 16
        some_ready = <optimized out>
        nfds = <optimized out>
        allocated_nfds = 5
        fds = <optimized out>
        begin_time_nsec = 257102421153
#3  0x00007ffff67f3392 in g_main_context_iteration (context=context@entry=0x101311f20, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4276
        retval = <optimized out>
#4  0x00007ffff6a0f30e in g_application_run (application=0x1012b2210, argc=<optimized out>, argv=0x7fffffffdc58) at ../glib/gio/gapplication.c:2569
        arguments = 0x1012c8c10
        status = 0
        context = 0x101311f20
        acquired_context = <optimized out>
        __func__ = "g_application_run"
#5  0x00000001002836d7 in  ()
#6  0x00007ffff6029290 in __libc_start_call_main (main=main@entry=0x100283670, argc=argc@entry=1, argv=argv@entry=0x7fffffffdc58) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488346200, -7456370708868060423, 0, 140737488346216, 4313334208, 140737354125312, 7456370707915123449, 7456353899255999225}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fffffffdc58, 0x1}, data = {prev = 0x0, cleanup = 0x0, canceltype = -9128}}}
        not_first_call = <optimized out>
#7  0x00007ffff602934a in __libc_start_main_impl (main=0x100283670, argc=1, argv=0x7fffffffdc58, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdc48) at ../csu/libc-start.c:389
#8  0x000000010029e565 in  ()
carrotIndustries commented 2 years ago

Seems like the background thread is well-behaved and doing what it's supposed to to. One thing that might be an issue is that the frequent updates from the background thread might be messing up the compositor in some way or another.

You might try commenting out https://github.com/horizon-eda/horizon/blob/master/src/pool-prj-mgr/pools_window/pool_download_window.cpp#L126 and https://github.com/horizon-eda/horizon/blob/master/src/pool-prj-mgr/pools_window/pool_download_window.cpp#L138 and check if that makes a difference.

oxplot commented 2 years ago

You might try commenting out

Tried with same result. Still dies with the same error message:

(gdb) thread apply all bt -full

Thread 23 (Thread 0x7fffe11fe640 (LWP 121707) "horizon-eda"):
#0  __GI___ioctl (fd=42, request=request@entry=1074041865) at ../sysdeps/unix/sysv/linux/ioctl.c:36
        args = {{gp_offset = 16, fp_offset = 0, overflow_arg_area = 0x7fffe11fccb0, reg_save_area = 0x7fffe11fcc70}}
        r = 0
#1  0x00007ffff6993cba in btrfs_reflink_with_progress (cancellable=0x0, error=0x7fffe11fcd50, progress_callback_data=0x0, progress_callback=0x0, info=0x101b6d360, out=0x7fffc993e990, in=0x101d20db0) at ../glib/gio/gfile.c:3162
        source_size = <optimized out>
        ret = <optimized out>
        fd_in = 41
        fd_out = <optimized out>
        errsv = <optimized out>
        reflink_err = 0x0
        out = 0x7fffc993e990
        attrs_to_read = <optimized out>
        do_set_attributes = 1
        ret = 0
        info = <optimized out>
        tmp_error = 0x0
        file_in = 0x101d20db0
        in = 0x101d20db0
        target = <optimized out>
        create_flags = <optimized out>
        iface = <optimized out>
        my_error = 0x7fffc80dab00
        res = <optimized out>
        __func__ = "g_file_copy"
#2  file_copy_fallback (error=0x7fffe11fce50, progress_callback_data=0x0, progress_callback=0x0, cancellable=0x0, flags=<optimized out>, destination=0x1014d33a0, source=0x1014d4480) at ../glib/gio/gfile.c:3354
        reflink_err = 0x0
        out = 0x7fffc993e990
        attrs_to_read = <optimized out>
        do_set_attributes = 1
        ret = 0
        info = <optimized out>
        tmp_error = 0x0
        file_in = 0x101d20db0
        in = 0x101d20db0
        target = <optimized out>
        create_flags = <optimized out>
        iface = <optimized out>
        my_error = 0x7fffc80dab00
        res = <optimized out>
        __func__ = "g_file_copy"
#3  g_file_copy (source=0x1014d4480, destination=0x1014d33a0, flags=<optimized out>, cancellable=0x0, progress_callback=0x0, progress_callback_data=0x0, error=0x7fffe11fce50) at ../glib/gio/gfile.c:3566
        iface = <optimized out>
        my_error = 0x7fffc80dab00
        res = <optimized out>
        __func__ = "g_file_copy"
#4  0x00007ffff7535ca8 in Gio::File::copy(Glib::RefPtr<Gio::File> const&, Gio::FileCopyFlags) (this=<optimized out>, destination=<optimized out>, flags=<optimized out>) at gio/giomm/file.cc:639
        gerror = 0x0
        res = <optimized out>
#5  0x0000000100863330 in  ()
#6  0x000000010085f0f7 in  ()
#7  0x00007ffff7cd6183 in std::execute_native_thread_routine(void*) (__p=0x102100f20) at /usr/src/debug/gcc/libstdc++-v3/src/c++11/thread.cc:82
#8  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736970352192, 4980239827218458383, 140737488340094, 0, 140737488340095, 140736961961984, -4980242852008433905, -4980222881279383793}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#9  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 7 (Thread 0x7fffe37fe640 (LWP 121664) "ZMQbg/IO/0"):
#0  0x00007ffff6111c9e in epoll_wait (epfd=19, events=0x7fffe37fcca0, maxevents=256, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
        sc_ret = -4
        sc_cancel_oldtype = 0
#1  0x00007ffff65e302f in  () at /usr/lib/libzmq.so.5
#2  0x00007ffff6624e7f in  () at /usr/lib/libzmq.so.5
#3  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737010198080, 4980239827218458383, 140737488345022, 0, 140737488345023, 140737001807872, -4980247524932851953, -4980222881279383793}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#4  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 6 (Thread 0x7fffe3fff640 (LWP 121663) "ZMQbg/Reaper"):
#0  0x00007ffff6111c9e in epoll_wait (epfd=17, events=0x7fffe3ffdca0, maxevents=256, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
        sc_ret = -4
        sc_cancel_oldtype = 0
#1  0x00007ffff65e302f in  () at /usr/lib/libzmq.so.5
#2  0x00007ffff6624e7f in  () at /usr/lib/libzmq.so.5
#3  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737018590784, 4980239827218458383, 140737488345086, 0, 140737488345087, 140737010200576, -4980248623907608817, -4980222881279383793}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#4  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 5 (Thread 0x7ffff0c31640 (LWP 121662) "dconf worker"):
#0  0x00007ffff6105c3f in __GI___poll (fds=0x1013452c0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
#1  0x00007ffff684bf68 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x1013452c0, timeout=<optimized out>, context=0x101345380) at ../glib/glib/gmain.c:4516
        ret = <optimized out>
        errsv = <optimized out>
        poll_func = 0x7ffff67fb9f0 <g_poll>
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 1
        allocated_nfds = <optimized out>
        fds = 0x1013452c0
        begin_time_nsec = 177626093063020
#2  g_main_context_iterate.constprop.0 (context=context@entry=0x101345380, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 1
        allocated_nfds = <optimized out>
        fds = 0x1013452c0
        begin_time_nsec = 177626093063020
#3  0x00007ffff67f3392 in g_main_context_iteration (context=0x101345380, may_block=1) at ../glib/glib/gmain.c:4276
        retval = <optimized out>
#4  0x00007ffff7fb4ebe in  () at /usr/lib/gio/modules/libdconfsettings.so
#5  0x00007ffff6825405 in g_thread_proxy (data=0x1012ca1e0) at ../glib/glib/gthread.c:827
        thread = 0x1012ca1e0
        __func__ = "g_thread_proxy"
#6  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737232705088, 4980239827218458383, 140737488343326, 0, 140737488343327, 140737224314880, -4980211278093228273, -4980222881279383793}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 4 (Thread 0x7ffff1475640 (LWP 121660) "gdbus"):
#0  0x00007ffff6105c3f in __GI___poll (fds=0x10144f050, nfds=7, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
#1  0x00007ffff684bf68 in g_main_context_poll (priority=<optimized out>, n_fds=7, fds=0x10144f050, timeout=<optimized out>, context=0x7fffe400b620) at ../glib/glib/gmain.c:4516
        ret = <optimized out>
        errsv = <optimized out>
        poll_func = 0x7ffff67fb9f0 <g_poll>
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 7
        allocated_nfds = <optimized out>
        fds = 0x10144f050
        begin_time_nsec = 177656251733801
#2  g_main_context_iterate.constprop.0 (context=0x7fffe400b620, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 7
        allocated_nfds = <optimized out>
        fds = 0x10144f050
        begin_time_nsec = 177656251733801
#3  0x00007ffff67f51cf in g_main_loop_run (loop=0x7fffe400b710) at ../glib/glib/gmain.c:4411
        __func__ = "g_main_loop_run"
#4  0x00007ffff6a45acc in gdbus_shared_thread_func (user_data=0x7fffe400b5f0) at ../glib/gio/gdbusprivate.c:282
        data = 0x7fffe400b5f0
#5  0x00007ffff6825405 in g_thread_proxy (data=0x7fffe4001580) at ../glib/glib/gthread.c:827
        thread = 0x7fffe4001580
        __func__ = "g_thread_proxy"
#6  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737241372224, 4980239827218458383, 140737250018798, 0, 140737250018799, 140737232982016, -4980208016065566961, -4980222881279383793}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 2 (Thread 0x7ffff24b6640 (LWP 121658) "gmain"):
#0  0x00007ffff6105c3f in __GI___poll (fds=0x10130b240, nfds=2, timeout=3997) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
#1  0x00007ffff684bf68 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x10130b240, timeout=<optimized out>, context=0x10130a900) at ../glib/glib/gmain.c:4516
        ret = <optimized out>
        errsv = <optimized out>
        poll_func = 0x7ffff67fb9f0 <g_poll>
        max_priority = 2147483647
        timeout = 3997
        some_ready = <optimized out>
        nfds = 2
        allocated_nfds = <optimized out>
        fds = 0x10130b240
        begin_time_nsec = 177663943765220
#2  g_main_context_iterate.constprop.0 (context=context@entry=0x10130a900, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
        max_priority = 2147483647
        timeout = 3997
        some_ready = <optimized out>
        nfds = 2
        allocated_nfds = <optimized out>
        fds = 0x10130b240
        begin_time_nsec = 177663943765220
#3  0x00007ffff67f3392 in g_main_context_iteration (context=0x10130a900, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4276
        retval = <optimized out>
#4  0x00007ffff67f33e2 in glib_worker_main (data=<optimized out>) at ../glib/glib/gmain.c:6178
#5  0x00007ffff6825405 in g_thread_proxy (data=0x10130ac00) at ../glib/glib/gthread.c:827
        thread = 0x10130ac00
        __func__ = "g_thread_proxy"
#6  0x00007ffff608c54d in start_thread (arg=<optimized out>) at pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737258415680, 4980239827218458383, 140737488344078, 0, 140737488344079, 140737250025472, -4980214646958201073, -4980222881279383793}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff6111874 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Thread 1 (Thread 0x7ffff4317c00 (LWP 121636) "horizon-eda"):
#0  gdk_event_source_prepare (base=base@entry=0x1013487e0, timeout=timeout@entry=0x7fffffffd984) at ../gtk/gdk/wayland/gdkeventsource.c:67
        source = 0x1013487e0
        display = 0x101304050
        __func__ = "gdk_event_source_prepare"
#1  0x00007ffff67f583b in g_main_context_prepare (context=0x101311f20, priority=0x7fffffffda48) at ../glib/glib/gmain.c:3737
        begin_time_nsec = 177665345214595
        result = <optimized out>
        prepare = 0x7ffff6b6a380 <gdk_event_source_prepare>
        source_timeout = -1
        i = <optimized out>
        n_ready = 0
        current_priority = 2147483647
        source = 0x1013487e0
        iter = {context = 0x101311f20, may_modify = 1, current_list = 0x7fffe4008e60 = {0x7fffe4008e40}, source = 0x1013487e0}
#2  0x00007ffff684bdc6 in g_main_context_iterate.constprop.0 (context=context@entry=0x101311f20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4191
        max_priority = 2147483647
        timeout = 16
        some_ready = <optimized out>
        nfds = <optimized out>
        allocated_nfds = 5
        fds = <optimized out>
        begin_time_nsec = 177665345214414
#3  0x00007ffff67f3392 in g_main_context_iteration (context=context@entry=0x101311f20, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4276
        retval = <optimized out>
#4  0x00007ffff6a0f30e in g_application_run (application=0x1012b2210, argc=<optimized out>, argv=0x7fffffffdc58) at ../glib/gio/gapplication.c:2569
        arguments = 0x10144e9e0
        status = 0
        context = 0x101311f20
        acquired_context = <optimized out>
        __func__ = "g_application_run"
#5  0x0000000100283697 in  ()
#6  0x00007ffff6029290 in __libc_start_call_main (main=main@entry=0x100283630, argc=argc@entry=1, argv=argv@entry=0x7fffffffdc58) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488346200, 4980239827218327311, 0, 140737488346216, 4313334208, 140737354125312, -4980239828412274929, -4980222827088845041}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fffffffdc58, 0x1}, data = {prev = 0x0, cleanup = 0x0, canceltype = -9128}}}
        not_first_call = <optimized out>
#7  0x00007ffff602934a in __libc_start_main_impl (main=0x100283630, argc=1, argv=0x7fffffffdc58, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdc48) at ../csu/libc-start.c:389
#8  0x000000010029e525 in  ()
valpackett commented 2 years ago

Just encountered that as I wanted to redownload the pool.

Looks like it's this GTK bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/124

carrotIndustries commented 2 years ago

Wondering why it only happens on pool download. There are other places that frequently update the UI such as pool update and checks.