Bug 2242944 - segfault of xfce4-panel when entering screensaver
Summary: segfault of xfce4-panel when entering screensaver
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: libwnck3
Version: 38
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Wolfgang Ulbrich
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-10-09 21:04 UTC by Pavel Moravec
Modified: 2023-12-03 13:06 UTC (History)
6 users (show)

Fixed In Version: libwnck3-43.0-5.fc38
Clone Of:
Environment:
Last Closed: 2023-11-30 03:34:33 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Pavel Moravec 2023-10-09 21:04:47 UTC
See https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/630#note_80841 and above: there is a race condition during entering xfce4 screensaver which causes xfce4-panel to segfault. The bug is in libwnck3 either way.

Backtrace:

(gdb) bt full
#0  g_type_check_instance_cast (type_instance=type_instance@entry=0x5649b99954a0, iface_type=94874639076944) at ../gobject/gtype.c:4198
        node = <optimized out>
        iface = <optimized out>
        is_instantiatable = <optimized out>
        check = <optimized out>
#1  0x00007f96c9c52df0 in _wnck_pager_queue_resize (data=data@entry=0x5649b99954a0) at ../libwnck/pager.c:777
No locals.
#2  0x00007f96c8e6f4fd in g_idle_dispatch (source=0x5649b97d1a90, callback=0x7f96c9c52dd0 <_wnck_pager_queue_resize>, user_data=0x5649b99954a0) at ../glib/gmain.c:6163
        idle_source = 0x5649b97d1a90
        again = <optimized out>
#3  0x00007f96c8e734fc in g_main_dispatch (context=0x5649b928e000) at ../glib/gmain.c:3460
        dispatch = 0x7f96c8e6f4d0 <g_idle_dispatch>
        prev_source = 0x0
        begin_time_nsec = 587755327112192
        was_in_call = 0
        user_data = 0x5649b99954a0
        callback = 0x7f96c9c52dd0 <_wnck_pager_queue_resize>
        cb_funcs = 0x7f96c8f5e380 <g_source_callback_funcs>
        cb_data = 0x5649b9989870
        need_destroy = <optimized out>
        source = 0x5649b97d1a90
        current = 0x5649b92c6da0
        i = 31
        current = <optimized out>
        i = <optimized out>
        __func__ = <optimized out>
        source = <optimized out>
        _g_boolean_var_163 = <optimized out>
        was_in_call = <optimized out>
        user_data = <optimized out>
        callback = <optimized out>
        cb_funcs = <optimized out>
        cb_data = <optimized out>
        need_destroy = <optimized out>
        dispatch = <optimized out>
        prev_source = <optimized out>
        begin_time_nsec = <optimized out>
        _g_boolean_var_164 = <optimized out>
#4  g_main_context_dispatch (context=0x5649b928e000) at ../glib/gmain.c:4200
No locals.
#5  0x00007f96c8ed16b8 in g_main_context_iterate.isra.0 (context=0x5649b928e000, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
        max_priority = 200
        timeout = 0
        some_ready = 1
        nfds = 4
        allocated_nfds = <optimized out>
        fds = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        begin_time_nsec = 587755323018436
#6  0x00007f96c8e72aff in g_main_loop_run (loop=0x5649b92ccd10) at ../glib/gmain.c:4479
        self = <optimized out>
        __func__ = "g_main_loop_run"
#7  0x00007f96c9606975 in gtk_main () at ../gtk/gtkmain.c:1329
        loop = 0x5649b92ccd10
#8  0x00005649b8473a18 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/xfce4-panel-4.18.4-1.fc38.x86_64/panel/main.c:382
        context = <optimized out>
        error = 0x0
        dbus_service = 0x5649b92c8ed0
        succeed = <optimized out>
        remote_succeed = 32662
        i = <optimized out>
        signums = {2, 3, 15, 6, 10}
        error_msg = <optimized out>
        sm_client = 0x5649b92cb2f0
(gdb) 


An attempt to print variables content:

(gdb) p type_instance
$1 = (GTypeInstance *) 0x5649b99954a0
(gdb) p type_instance->g_class
$2 = (GTypeClass *) 0x3ff0000000000000
(gdb) p type_instance->g_class->g_type
Cannot access memory at address 0x3ff0000000000000
(gdb) p *(type_instance->g_class)
Cannot access memory at address 0x3ff0000000000000
(gdb) p *(type_instance)
$3 = {g_class = 0x3ff0000000000000}
(gdb)

I can provide coredump or sosreport when needed.

Reproducible: Sometimes

Steps to Reproduce:
1. Have xfce4 with xfce4-panel
2. Have an external monitor with some standby timeout
3. Have screensaver with some timeout
4. Wait for screensaver to lock the screen
5. Unlock the screen and check if window buttons on the panel are randomly shuffled - if so, xfce4-panel segfaulted due to this bug.

This happens to me with say 10-20% probability.

Comment 1 Lonni J Friedman 2023-11-12 18:18:17 UTC
Also seeing this since upgrading from Fedora 37 to 38.

Comment 2 Wolfgang Ulbrich 2023-11-12 19:35:43 UTC
Can you please test https://koji.fedoraproject.org/koji/taskinfo?taskID=108945566
I reverted the mentioned patch to see if this really is the cause of your problem.
Don't expect a fast official build because removing this patch breaks wnck-pager in Mate desktop.
In the mean time i will ask Mate upstream for a solution to revert this patch without braking Mate desktop.

Comment 3 Lonni J Friedman 2023-11-12 21:22:21 UTC
@fedora thanks for the build.  I've installed it.  I'll let you know if the segfaults stop appearing (they were showing up roughly 3 times/week).

Comment 4 Pavel Moravec 2023-11-13 07:15:37 UTC
Thanks for the build. Likewise Lonni, the segfault happens several times per week so I will let you know after 7-10 days about the outcome.

Comment 5 Lonni J Friedman 2023-11-15 23:52:23 UTC
I've not seen a single segfault since installing the new package.  I consider it fixed.

Comment 6 Pavel Moravec 2023-11-20 08:36:57 UTC
(In reply to Lonni J Friedman from comment #5)
> I've not seen a single segfault since installing the new package.  I
> consider it fixed.

I can confirm that. Since I installed the package and rebooted the notebook week ago, no more segfaults.

Comment 7 Fedora Update System 2023-11-21 22:01:01 UTC
FEDORA-2023-d604706262 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-d604706262

Comment 8 Fedora Update System 2023-11-22 03:04:34 UTC
FEDORA-2023-d604706262 has been pushed to the Fedora 38 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-d604706262`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-d604706262

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2023-11-30 03:34:33 UTC
FEDORA-2023-d604706262 has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 pkoz 2023-12-02 22:37:30 UTC
(In reply to Wolfgang Ulbrich from comment #2)
> Can you please test
> https://koji.fedoraproject.org/koji/taskinfo?taskID=108945566
> I reverted the mentioned patch to see if this really is the cause of your
> problem.
> Don't expect a fast official build because removing this patch breaks
> wnck-pager in Mate desktop.
> In the mean time i will ask Mate upstream for a solution to revert this
> patch without braking Mate desktop.

Yuo must be right about Mate. I am on fc38 Mate, and have a one-inch wide panel on the right. The pager has 4 windows stacked vertically in one column.
libwnck3-43.0-5.fc38 caused the 4 pager windows to shrink in height to unusable, I had to revert to libwnck3-43.0-4.fc38.

Comment 11 Wolfgang Ulbrich 2023-12-03 10:51:08 UTC
(In reply to pkoz from comment #10)
> (In reply to Wolfgang Ulbrich from comment #2)
> > Can you please test
> > https://koji.fedoraproject.org/koji/taskinfo?taskID=108945566
> > I reverted the mentioned patch to see if this really is the cause of your
> > problem.
> > Don't expect a fast official build because removing this patch breaks
> > wnck-pager in Mate desktop.
> > In the mean time i will ask Mate upstream for a solution to revert this
> > patch without braking Mate desktop.
> 
> Yuo must be right about Mate. I am on fc38 Mate, and have a one-inch wide
> panel on the right. The pager has 4 windows stacked vertically in one column.
> libwnck3-43.0-5.fc38 caused the 4 pager windows to shrink in height to
> unusable, I had to revert to libwnck3-43.0-4.fc38.

Try out mate-panel-1.26.4-1.fc38 https://bodhi.fedoraproject.org/updates/FEDORA-2023-0669dc58d8 with libwnck3-43.0-5.fc38

Comment 12 pkoz 2023-12-03 13:06:46 UTC
> Try out mate-panel-1.26.4-1.fc38
> https://bodhi.fedoraproject.org/updates/FEDORA-2023-0669dc58d8 with
> libwnck3-43.0-5.fc38

Thank you, I can confirm that the new mate-panel-1.26.4-1.fc38 together with libwnck3-43.0-5.fc38 now produce a normally sized pager in my Mate panel.


Note You need to log in before you can comment on or make changes to this bug.