BuddiesOfBudgie / magpie

Magpie is a softish fork of Mutter for use with Budgie Desktop.
GNU General Public License v2.0
19 stars 4 forks source link

[Bug] Segsegv when moving window #16

Open 1cekrim opened 9 months ago

1cekrim commented 9 months ago

Description

When I quickly repeat window movement with Super + PageUp/PageDown, segsegv occurs.

Budgie version

budgie-desktop 10.8.2

Operating System

6.6.1-arch1-1

Steps to reproduce the issue

  1. Install arch and budgie with archinstall from the official iso
  2. Open several windows to increase the graphics load
  3. In this state, if I press Super+PageUp/PageDown, a slight stutter occurs, but if I repeat this, it crashes and logs out.

Actual result

dmesg:

[ 1194.191491] budgie-wm[4852]: segfault at 20 ip 00007f41020ce468 sp 00007ffc87e0aa00 error 4 in libmagpie-0.so.0.0.0[7f410203f000+13e000] likely on CPU 8 (core 16, socket 0)
[ 1194.191517] Code: 89 da 31 f6 48 8b 7d 20 48 83 c4 08 5b 5d e9 0f 23 01 00 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 f3 0f 1e fa 48 83 ec 08 <48> 8b 47 20 48 89 fe 48 8b 78 28 ff 15 97 ad 12 00 85 c0 78 05 48

coredump:

       Message: Process 4852 (budgie-wm) of user 1000 dumped core.

                Stack trace of thread 4852:
                #0  0x00007f41020ce468 meta_workspa       Message: Process 4852 (budgie-wm) of user 1000 dumped core.

                Stack trace of thread 4852:
                #0  0x00007f41020ce468 meta_workspace_index (libmagpie-0.so.0 + 0xce468)
                #1  0x000055704ec755a4 n/a (budgie-wm + 0x1f5a4)
                #2  0x00007f41020d7959 meta_workspace_activate_with_focus (libmagpie-0.so.0 + 0xd7959)
                #3  0x00007f41020aba92 n/a (libmagpie-0.so.0 + 0xaba92)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f41020ac166 n/a (libmagpie-0.so.0 + 0xac166)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101e66d0d clutter_do_event (libmagpie-clutter-0.so.0 + 0x93d0d)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4102170779 n/a (libmagpie-0.so.0 + 0x170779)
                BuddiesOfBudgie/budgie-desktop#7  0x00007f41020d9dcd n/a (libmagpie-0.so.0 + 0xd9dcd)
                BuddiesOfBudgie/budgie-desktop#8  0x00007f410232cf69 n/a (libglib-2.0.so.0 + 0x59f69)
                BuddiesOfBudgie/budgie-desktop#9  0x00007f410238b327 n/a (libglib-2.0.so.0 + 0xb8327)
                BuddiesOfBudgie/budgie-desktop#10 0x00007f410232db97 g_main_loop_run (libglib-2.0.so.0 + 0x5ab97)
                BuddiesOfBudgie/budgie-desktop#11 0x00007f41020b271b meta_context_run_main_loop (libmagpie-0.so.0 + 0xb271b)
                BuddiesOfBudgie/budgie-desktop#12 0x000055704ec612cb n/a (budgie-wm + 0xb2cb)
                #13 0x00007f410199dcd0 n/a (libc.so.6 + 0x27cd0)
                #14 0x00007f410199dd8a __libc_start_main (libc.so.6 + 0x27d8a)
                BuddiesOfBudgie/budgie-desktop#15 0x000055704ec61325 n/a (budgie-wm + 0xb325)

                Stack trace of thread 4858:
                #0  0x00007f4101a05db0 pthread_mutex_lock (libc.so.6 + 0x8fdb0)
                #1  0x00007f4102381bd8 g_variant_type_info_unref (libglib-2.0.so.0 + 0xaebd8)
                #2  0x00007f4102371291 g_variant_unref (libglib-2.0.so.0 + 0x9e291)
                #3  0x00007f4102589796 n/a (libgio-2.0.so.0 + 0x108796)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f41024418b4 g_object_unref (libgobject-2.0.so.0 + 0x228b4)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4102593277 n/a (libgio-2.0.so.0 + 0x112277)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f410259c30f n/a (libgio-2.0.so.0 + 0x11b30f)
                BuddiesOfBudgie/budgie-desktop#7  0x00007f410252ad14 n/a (libgio-2.0.so.0 + 0xa9d14)
                BuddiesOfBudgie/budgie-desktop#8  0x00007f410252ad4d n/a (libgio-2.0.so.0 + 0xa9d4d)
                BuddiesOfBudgie/budgie-desktop#9  0x00007f410232cf69 n/a (libglib-2.0.so.0 + 0x59f69)
                BuddiesOfBudgie/budgie-desktop#10 0x00007f410238b327 n/a (libglib-2.0.so.0 + 0xb8327)
                BuddiesOfBudgie/budgie-desktop#11 0x00007f410232db97 g_main_loop_run (libglib-2.0.so.0 + 0x5ab97)
                BuddiesOfBudgie/budgie-desktop#12 0x00007f410259314c n/a (libgio-2.0.so.0 + 0x11214c)
                #13 0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                #14 0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#15 0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4866:
                #0  0x00007f4101a78f6f __poll (libc.so.6 + 0x102f6f)
                #1  0x00007f410238b276 n/a (libglib-2.0.so.0 + 0xb8276)
                #2  0x00007f410232b162 g_main_context_iteration (libglib-2.0.so.0 + 0x58162)
                #3  0x00007f40ff6abfde n/a (libdconfsettings.so + 0x5fde)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 5800:
                #0  0x00007f4101a8473d syscall (libc.so.6 + 0x10e73d)
                #1  0x00007f4102386c93 g_cond_wait_until (libglib-2.0.so.0 + 0xb3c93)
                #2  0x00007f41022f8185 n/a (libglib-2.0.so.0 + 0x25185)
                #3  0x00007f410236152b n/a (libglib-2.0.so.0 + 0x8e52b)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4855:
                #0  0x00007f4101a8473d syscall (libc.so.6 + 0x10e73d)
                #1  0x00007f41023862b7 g_cond_wait (libglib-2.0.so.0 + 0xb32b7)
                #2  0x00007f41022f81b4 n/a (libglib-2.0.so.0 + 0x251b4)
                #3  0x00007f4102360a7e n/a (libglib-2.0.so.0 + 0x8da7e)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4905:
                #0  0x00007f4101a78f6f __poll (libc.so.6 + 0x102f6f)
                #1  0x00007f40fa5b18c7 n/a (libpulse.so.0 + 0x338c7)
                #2  0x00007f40fa59b46c pa_mainloop_poll (libpulse.so.0 + 0x1d46c)
                #3  0x00007f40fa5a542c pa_mainloop_iterate (libpulse.so.0 + 0x2742c)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f40fa5a54e1 pa_mainloop_run (libpulse.so.0 + 0x274e1)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f40fa5b5c02 n/a (libpulse.so.0 + 0x37c02)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f40f8668c67 n/a (libpulsecommon-16.1.so + 0x5bc67)
                BuddiesOfBudgie/budgie-desktop#7  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#8  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4856:
                #0  0x00007f4101a78f6f __poll (libc.so.6 + 0x102f6f)
                #1  0x00007f410238b276 n/a (libglib-2.0.so.0 + 0xb8276)
                #2  0x00007f410232b162 g_main_context_iteration (libglib-2.0.so.0 + 0x58162)
                #3  0x00007f410232b1b2 n/a (libglib-2.0.so.0 + 0x581b2)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)
                ELF object binary architecture: AMD x86-64

ce_index (libmagpie-0.so.0 + 0xce468)
                #1  0x000055704ec755a4 n/a (budgie-wm + 0x1f5a4)
                #2  0x00007f41020d7959 meta_workspace_activate_with_focus (libmagpie-0.so.0 + 0xd7959)
                #3  0x00007f41020aba92 n/a (libmagpie-0.so.0 + 0xaba92)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f41020ac166 n/a (libmagpie-0.so.0 + 0xac166)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101e66d0d clutter_do_event (libmagpie-clutter-0.so.0 + 0x93d0d)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4102170779 n/a (libmagpie-0.so.0 + 0x170779)
                BuddiesOfBudgie/budgie-desktop#7  0x00007f41020d9dcd n/a (libmagpie-0.so.0 + 0xd9dcd)
                BuddiesOfBudgie/budgie-desktop#8  0x00007f410232cf69 n/a (libglib-2.0.so.0 + 0x59f69)
                BuddiesOfBudgie/budgie-desktop#9  0x00007f410238b327 n/a (libglib-2.0.so.0 + 0xb8327)
                BuddiesOfBudgie/budgie-desktop#10 0x00007f410232db97 g_main_loop_run (libglib-2.0.so.0 + 0x5ab97)
                BuddiesOfBudgie/budgie-desktop#11 0x00007f41020b271b meta_context_run_main_loop (libmagpie-0.so.0 + 0xb271b)
                BuddiesOfBudgie/budgie-desktop#12 0x000055704ec612cb n/a (budgie-wm + 0xb2cb)
                #13 0x00007f410199dcd0 n/a (libc.so.6 + 0x27cd0)
                #14 0x00007f410199dd8a __libc_start_main (libc.so.6 + 0x27d8a)
                BuddiesOfBudgie/budgie-desktop#15 0x000055704ec61325 n/a (budgie-wm + 0xb325)

                Stack trace of thread 4858:
                #0  0x00007f4101a05db0 pthread_mutex_lock (libc.so.6 + 0x8fdb0)
                #1  0x00007f4102381bd8 g_variant_type_info_unref (libglib-2.0.so.0 + 0xaebd8)
                #2  0x00007f4102371291 g_variant_unref (libglib-2.0.so.0 + 0x9e291)
                #3  0x00007f4102589796 n/a (libgio-2.0.so.0 + 0x108796)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f41024418b4 g_object_unref (libgobject-2.0.so.0 + 0x228b4)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4102593277 n/a (libgio-2.0.so.0 + 0x112277)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f410259c30f n/a (libgio-2.0.so.0 + 0x11b30f)
                BuddiesOfBudgie/budgie-desktop#7  0x00007f410252ad14 n/a (libgio-2.0.so.0 + 0xa9d14)
                BuddiesOfBudgie/budgie-desktop#8  0x00007f410252ad4d n/a (libgio-2.0.so.0 + 0xa9d4d)
                BuddiesOfBudgie/budgie-desktop#9  0x00007f410232cf69 n/a (libglib-2.0.so.0 + 0x59f69)
                BuddiesOfBudgie/budgie-desktop#10 0x00007f410238b327 n/a (libglib-2.0.so.0 + 0xb8327)
                BuddiesOfBudgie/budgie-desktop#11 0x00007f410232db97 g_main_loop_run (libglib-2.0.so.0 + 0x5ab97)
                BuddiesOfBudgie/budgie-desktop#12 0x00007f410259314c n/a (libgio-2.0.so.0 + 0x11214c)
                #13 0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                #14 0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#15 0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4866:
                #0  0x00007f4101a78f6f __poll (libc.so.6 + 0x102f6f)
                #1  0x00007f410238b276 n/a (libglib-2.0.so.0 + 0xb8276)
                #2  0x00007f410232b162 g_main_context_iteration (libglib-2.0.so.0 + 0x58162)
                #3  0x00007f40ff6abfde n/a (libdconfsettings.so + 0x5fde)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 5800:
                #0  0x00007f4101a8473d syscall (libc.so.6 + 0x10e73d)
                #1  0x00007f4102386c93 g_cond_wait_until (libglib-2.0.so.0 + 0xb3c93)
                #2  0x00007f41022f8185 n/a (libglib-2.0.so.0 + 0x25185)
                #3  0x00007f410236152b n/a (libglib-2.0.so.0 + 0x8e52b)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4855:
                #0  0x00007f4101a8473d syscall (libc.so.6 + 0x10e73d)
                #1  0x00007f41023862b7 g_cond_wait (libglib-2.0.so.0 + 0xb32b7)
                #2  0x00007f41022f81b4 n/a (libglib-2.0.so.0 + 0x251b4)
                #3  0x00007f4102360a7e n/a (libglib-2.0.so.0 + 0x8da7e)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4905:
                #0  0x00007f4101a78f6f __poll (libc.so.6 + 0x102f6f)
                #1  0x00007f40fa5b18c7 n/a (libpulse.so.0 + 0x338c7)
                #2  0x00007f40fa59b46c pa_mainloop_poll (libpulse.so.0 + 0x1d46c)
                #3  0x00007f40fa5a542c pa_mainloop_iterate (libpulse.so.0 + 0x2742c)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f40fa5a54e1 pa_mainloop_run (libpulse.so.0 + 0x274e1)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f40fa5b5c02 n/a (libpulse.so.0 + 0x37c02)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f40f8668c67 n/a (libpulsecommon-16.1.so + 0x5bc67)
                BuddiesOfBudgie/budgie-desktop#7  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#8  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)

                Stack trace of thread 4856:
                #0  0x00007f4101a78f6f __poll (libc.so.6 + 0x102f6f)
                #1  0x00007f410238b276 n/a (libglib-2.0.so.0 + 0xb8276)
                #2  0x00007f410232b162 g_main_context_iteration (libglib-2.0.so.0 + 0x58162)
                #3  0x00007f410232b1b2 n/a (libglib-2.0.so.0 + 0x581b2)
                BuddiesOfBudgie/budgie-desktop#4  0x00007f410235e9f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                BuddiesOfBudgie/budgie-desktop#5  0x00007f4101a029eb n/a (libc.so.6 + 0x8c9eb)
                BuddiesOfBudgie/budgie-desktop#6  0x00007f4101a867cc n/a (libc.so.6 + 0x1107cc)
                ELF object binary architecture: AMD x86-64
Core was generated by `/usr/bin/budgie-wm'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f41020ce468 in meta_workspace_index (workspace=workspace@entry=0x0) at ../magpie-0.9.3/src/core/workspace.c:732
732       ret = g_list_index (workspace->manager->workspaces, workspace);                                                                                                                          
[Current thread is 1 (Thread 0x7f40ff7e0600 (LWP 4852))]
gef➤  bt
#0  0x00007f41020ce468 in meta_workspace_index (workspace=workspace@entry=0x0) at ../magpie-0.9.3/src/core/workspace.c:732
#1  0x000055704ec755a4 in budgie_budgie_wm_real_switch_workspace (base=0x557051316370, from=0x1, to=0x2, direction=META_MOTION_RIGHT) at src/wm/budgie-wm.p/wm.c:9056
#2  0x00007f41020d7959 in meta_workspace_activate_with_focus (workspace=0x557051346da0, focus_this=0x0, timestamp=0x123877) at ../magpie-0.9.3/src/core/workspace.c:694
#3  0x00007f41020aba92 in invoke_handler (binding=0x557050e2de50, event=0x5570517d0f30, window=<optimized out>, handler=<optimized out>, display=0x557050e58210)
    at ../magpie-0.9.3/src/core/keybindings.c:1938
BuddiesOfBudgie/budgie-desktop#4  process_event (display=0x557050e58210, window=<optimized out>, event=0x5570517d0f30) at ../magpie-0.9.3/src/core/keybindings.c:2022
BuddiesOfBudgie/budgie-desktop#5  0x00007f41020ac166 in meta_keybindings_process_event (event=<optimized out>, window=0x557050ee7bd0, display=0x557050e58210) at ../magpie-0.9.3/src/core/keybindings.c:2350
BuddiesOfBudgie/budgie-desktop#6  meta_display_handle_event (event_actor=<optimized out>, event=<optimized out>, display=<optimized out>) at ../magpie-0.9.3/src/core/events.c:407
BuddiesOfBudgie/budgie-desktop#7  event_callback (event=<optimized out>, event_actor=<optimized out>, data=<optimized out>) at ../magpie-0.9.3/src/core/events.c:560
BuddiesOfBudgie/budgie-desktop#8  0x00007f4101e66d0d in _clutter_event_process_filters (event_actor=0x557050dc6210, event=0x5570517d0f30) at ../magpie-0.9.3/clutter/clutter/clutter-event.c:1691
BuddiesOfBudgie/budgie-desktop#9  clutter_do_event (event=0x5570517d0f30) at ../magpie-0.9.3/clutter/clutter/clutter-main.c:787
BuddiesOfBudgie/budgie-desktop#10 0x00007f4102170779 in meta_x11_handle_event.isra.0 (backend=backend@entry=0x5570507172c0, xevent=xevent@entry=0x7ffc87e0ad80) at ../magpie-0.9.3/src/backends/x11/meta-event-x11.c:106
BuddiesOfBudgie/budgie-desktop#11 0x00007f41020d9dcd in handle_host_xevent (event=0x7ffc87e0ad80, backend=0x5570507172c0) at ../magpie-0.9.3/src/backends/x11/meta-backend-x11.c:421
BuddiesOfBudgie/budgie-desktop#12 x_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../magpie-0.9.3/src/backends/x11/meta-backend-x11.c:475
#13 0x00007f410232cf69 in g_main_dispatch (context=0x55705070a900) at ../glib/glib/gmain.c:3476
#14 0x00007f410238b327 in g_main_context_dispatch_unlocked (context=0x55705070a900) at ../glib/glib/gmain.c:4284
BuddiesOfBudgie/budgie-desktop#15 g_main_context_iterate_unlocked.isra.0 (context=0x55705070a900, block=block@entry=0x1, dispatch=dispatch@entry=0x1, self=<optimized out>) at ../glib/glib/gmain.c:4349
BuddiesOfBudgie/budgie-desktop#16 0x00007f410232db97 in g_main_loop_run (loop=0x557051378890) at ../glib/glib/gmain.c:4551
BuddiesOfBudgie/budgie-desktop#17 0x00007f41020b271b in meta_context_run_main_loop (context=context@entry=0x5570507091f0, error=error@entry=0x7ffc87e0b030) at ../magpie-0.9.3/src/core/meta-context.c:465
#18 0x000055704ec612cb in _vala_main (args_length1=<optimized out>, args=<optimized out>) at src/wm/budgie-wm.p/main.c:163
#19 main (argc=<optimized out>, argv=<optimized out>) at src/wm/budgie-wm.p/main.c:198

Expected result

I don't want to end up losing my work and being forced to log out.

Additional information

No response

fossfreedom commented 9 months ago

https://github.com/BuddiesOfBudgie/magpie/blob/79ad959021bc3d8d95f6f2f0d630116116f6d119/src/core/workspace.c#L732

Likely the crash is here. So it sounds like the workspace being checked is invalid, probably because of such a fast switch. See if you can reproduce the issue with animations turned off via budgie desktop settings.

Workspace animation is managed in budgie desktop. Could be a timing issue.

1cekrim commented 9 months ago

Turning off the animation definitely solved the problem. Thank you. Additionally, after some testing, I found that quickly clicking Super+PageUp or Super+PageDown twice with the Wine app running can trigger the issue. It does not occur when the Wine apps are not turned on, so it seems to be a compatibility issue. I will report when I find out more.