End session menu button click crashes xfce-session
After one clicks on the "End session" button in xfce4 rolldown menu xfce-session immediately crashes with sig 6 ABRT :
PID: 12313 (xfce4-session)
UID: 1000 (user)
GID: 1000 (user)
Signal: 6 (ABRT)
Timestamp: Thu 2020-12-03 11:39:04 CET (14min ago)
Command Line: xfce4-session
Executable: /usr/bin/xfce4-session
Control Group: /user.slice/user-1000.slice/session-1.scope
Unit: session-1.scope
Slice: user-1000.slice
Session: 1
Owner UID: 1000 (user)
Boot ID: 7bff9f54534f4b58a36780ad827532ad
Machine ID: 3b1c4163df5b455fbc74c3a7ef149b5c
Hostname: rebro
Storage: /var/lib/systemd/coredump/core.xfce4-session.1000.7bff9f54534f4b58a36780ad827532ad.12313.1606991944000000.zst
Message: Process 12313 (xfce4-session) of user 1000 dumped core.
Stack trace of thread 12313:
#0 0x00007fc3e685f615 raise (libc.so.6 + 0x3d615)
#1 0x00007fc3e6848862 abort (libc.so.6 + 0x26862)
#2 0x00007fc3e6848747 __assert_fail_base.cold (libc.so.6 + 0x26747)
#3 0x00007fc3e6857bf6 __assert_fail (libc.so.6 + 0x35bf6)
#4 0x00007fc3e6e20cdf cairo_surface_mark_dirty_rectangle (libcairo.so.2 + 0x68cdf)
#5 0x00007fc3e6e490d0 n/a (libcairo.so.2 + 0x910d0)
#6 0x00007fc3e6e20c39 cairo_surface_mark_dirty_rectangle (libcairo.so.2 + 0x68c39)
#7 0x00007fc3e6e21255 cairo_surface_mark_dirty (libcairo.so.2 + 0x69255)
#8 0x00007fc3e6f7d4ad gdk_pixbuf_get_from_window (libgdk-3.so.0 + 0x404ad)
#9 0x000055a287fd0b21 xfsm_fadeout_new (xfce4-session + 0x1cb21)
#10 0x000055a287fd3cb2 xfsm_logout_dialog (xfce4-session + 0x1fcb2)
#11 0x000055a287fd4eba n/a (xfce4-session + 0x20eba)
#12 0x000055a287fd50a6 n/a (xfce4-session + 0x210a6)
#13 0x00007fc3e6a618f4 g_main_context_dispatch (libglib-2.0.so.0 + 0x528f4)
#14 0x00007fc3e6ab5821 n/a (libglib-2.0.so.0 + 0xa6821)
#15 0x00007fc3e6a60e43 g_main_loop_run (libglib-2.0.so.0 + 0x51e43)
#16 0x00007fc3e721d4ff gtk_main (libgtk-3.so.0 + 0x1e14ff)
#17 0x000055a287fc617f main (xfce4-session + 0x1217f)
#18 0x00007fc3e684a152 __libc_start_main (libc.so.6 + 0x28152)
#19 0x000055a287fc63ee _start (xfce4-session + 0x123ee)
Stack trace of thread 12322:
#0 0x00007fc3e691746f __poll (libc.so.6 + 0xf546f)
#1 0x00007fc3e6ab57af n/a (libglib-2.0.so.0 + 0xa67af)
#2 0x00007fc3e6a60121 g_main_context_iteration (libglib-2.0.so.0 + 0x51121)
#3 0x00007fc3e6a60172 n/a (libglib-2.0.so.0 + 0x51172)
#4 0x00007fc3e6a8ed31 n/a (libglib-2.0.so.0 + 0x7fd31)
#5 0x00007fc3e69f63e9 start_thread (libpthread.so.0 + 0x93e9)
#6 0x00007fc3e6922293 __clone (libc.so.6 + 0x100293)
Stack trace of thread 12323:
#0 0x00007fc3e691746f __poll (libc.so.6 + 0xf546f)
#1 0x00007fc3e6ab57af n/a (libglib-2.0.so.0 + 0xa67af)
#2 0x00007fc3e6a60e43 g_main_loop_run (libglib-2.0.so.0 + 0x51e43)
#3 0x00007fc3e6c9cfe8 n/a (libgio-2.0.so.0 + 0x101fe8)
#4 0x00007fc3e6a8ed31 n/a (libglib-2.0.so.0 + 0x7fd31)
#5 0x00007fc3e69f63e9 start_thread (libpthread.so.0 + 0x93e9)
#6 0x00007fc3e6922293 __clone (libc.so.6 + 0x100293)</code>
It's obviously related to the cairo, because it prints error inside xsession.log :
xfce4-session: ../cairo/src/cairo-surface.c:1733: cairo_surface_mark_dirty_rectangle: Warunek zapewnienia `! _cairo_surface_has_snapshots (surface)' nie został spełniony.
It's 100% reproducible and started happening after upgrading cairo to 1.17.4, with version 1.17.2 bug does not trigger.
I'm open to provide any additional details.