FS#70814 - [gpicview] 0001-Fix-displaying-images-with-GTK3.patch causes segfault when run on Wayland

Attached to Project: Community Packages
Opened by Štěpán Balážik (sbalazik) - Wednesday, 12 May 2021, 11:30 GMT
Last edited by Balló György (City-busz) - Thursday, 13 May 2021, 17:32 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Balló György (City-busz)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Version 0.2.5-6 segfaults when run on Wayland (with `GDK_BACKEND=wayland`), it runs okay with `GDK_BACKEND=x11`.

Additional info:
gpicview version 0.2.5-6
gtk3 version 1:3.24.29-1

Previously, I was using the GTK2 version of the package before, so this wasn't a problem for me.
I also built and installed the upstream tarballs for 0.2.5 with --enable-gtk3 option for ./configure and it runs on Wayland with no problems.
After applying the aforementioned patch and rebuilding, the gpicview crashes with segfault.

Stack trace from gdb (my build with the patch applied):
(gdb) where
#0 0x00007ff3aa8aa370 in XRootWindowOfScreen () at /usr/lib/libX11.so.6
#1 0x00005564435cf9d6 in gf_display_get_workarea (g_screen=0x556444102010, rect=0x7ffdcdc14240) at working-area.c:61
#2 0x00005564435cfcdc in get_working_area (screen=0x556444102010, rect=0x7ffdcdc14240) at working-area.c:141
#3 0x00005564435cbf7d in main_win_open (mw=0x5564443c22a0, file_path=0x556444160d70 "./gpicview.png", zoom=ZOOM_NONE) at main-win.c:439
#4 0x00005564435cbd57 in main_win_open (mw=0x5564443c22a0, file_path=0x5564435d7102 ".", zoom=ZOOM_NONE) at main-win.c:380
#5 0x00005564435ca779 in main (argc=1, argv=0x7ffdcdc14448) at gpicview.c:104


coredump info (binary from the package):
Timestamp: Wed 2021-05-12 12:16:50 CEST (5min ago)
Command Line: gpicview
Executable: /usr/bin/gpicview
Control Group: /user.slice/user-1000.slice/session-1.scope
Unit: session-1.scope
Slice: user-1000.slice
Session: 1
Owner UID: 1000 (sbalazik)
Boot ID: d40ca6b801ef4ed7970c806f68eeb54e
Machine ID: fb82c1cf3c6e4b8d8338b85b371740b9
Hostname: sbalazik-dell
Storage: /var/lib/systemd/coredump/core.gpicview.1000.d40ca6b801ef4ed7970c806f68eeb54e.16568.1620814610000000.zst (present)
Disk Size: 1.4M
Message: Process 16568 (gpicview) of user 1000 dumped core.

Stack trace of thread 16568:
#0 0x00007f8098112370 XRootWindowOfScreen (libX11.so.6 + 0x2f370)
#1 0x000056383a9fe237 n/a (gpicview + 0xd237)
#2 0x000056383a9fc801 n/a (gpicview + 0xb801)
#3 0x000056383a9f923e n/a (gpicview + 0x823e)
#4 0x00007f80971cfb25 __libc_start_main (libc.so.6 + 0x27b25)
#5 0x000056383a9f928e n/a (gpicview + 0x828e)

Stack trace of thread 16571:
#0 0x00007f80972a1a9d syscall (libc.so.6 + 0xf9a9d)
#1 0x00007f80975e606b g_cond_wait_until (libglib-2.0.so.0 + 0xa206b)
#2 0x00007f80975678b3 n/a (libglib-2.0.so.0 + 0x238b3)
#3 0x00007f80975c8ddb n/a (libglib-2.0.so.0 + 0x84ddb)
#4 0x00007f80975c60c1 n/a (libglib-2.0.so.0 + 0x820c1)
#5 0x00007f8096b32299 start_thread (libpthread.so.0 + 0x9299)
#6 0x00007f80972a7053 __clone (libc.so.6 + 0xff053)

Stack trace of thread 16572:
#0 0x00007f809729c37f __poll (libc.so.6 + 0xf437f)
#1 0x00007f80975ebae8 n/a (libglib-2.0.so.0 + 0xa7ae8)
#2 0x00007f8097597593 g_main_loop_run (libglib-2.0.so.0 + 0x53593)
#3 0x00007f80970b5558 n/a (libgio-2.0.so.0 + 0x102558)
#4 0x00007f80975c60c1 n/a (libglib-2.0.so.0 + 0x820c1)
#5 0x00007f8096b32299 start_thread (libpthread.so.0 + 0x9299)
#6 0x00007f80972a7053 __clone (libc.so.6 + 0xff053)

Stack trace of thread 16570:
#0 0x00007f809729c37f __poll (libc.so.6 + 0xf437f)
#1 0x00007f80975ebae8 n/a (libglib-2.0.so.0 + 0xa7ae8)
#2 0x00007f8097595781 g_main_context_iteration (libglib-2.0.so.0 + 0x51781)
#3 0x00007f80975957d2 n/a (libglib-2.0.so.0 + 0x517d2)
#4 0x00007f80975c60c1 n/a (libglib-2.0.so.0 + 0x820c1)
#5 0x00007f8096b32299 start_thread (libpthread.so.0 + 0x9299)
#6 0x00007f80972a7053 __clone (libc.so.6 + 0xff053)

Stack trace of thread 16573:
#0 0x00007f809729c37f __poll (libc.so.6 + 0xf437f)
#1 0x00007f80975ebae8 n/a (libglib-2.0.so.0 + 0xa7ae8)
#2 0x00007f8097595781 g_main_context_iteration (libglib-2.0.so.0 + 0x51781)
#3 0x00007f8098232ebe n/a (libdconfsettings.so + 0x5ebe)
#4 0x00007f80975c60c1 n/a (libglib-2.0.so.0 + 0x820c1)
#5 0x00007f8096b32299 start_thread (libpthread.so.0 + 0x9299)
#6 0x00007f80972a7053 __clone (libc.so.6 + 0xff053)

Stack trace of thread 16575:
#0 0x00007f80972a1a9d syscall (libc.so.6 + 0xf9a9d)
#1 0x00007f80975e606b g_cond_wait_until (libglib-2.0.so.0 + 0xa206b)
#2 0x00007f80975678b3 n/a (libglib-2.0.so.0 + 0x238b3)
#3 0x00007f80975c8ddb n/a (libglib-2.0.so.0 + 0x84ddb)
#4 0x00007f80975c60c1 n/a (libglib-2.0.so.0 + 0x820c1)
#5 0x00007f8096b32299 start_thread (libpthread.so.0 + 0x9299)
#6 0x00007f80972a7053 __clone (libc.so.6 + 0xff053)


Steps to reproduce:
1. install gpicview
2. install a wayland compositor (sway in my case)
3. run gpicview (`Segmentation fault (core dumped)`)
This task depends upon

Closed by  Balló György (City-busz)
Thursday, 13 May 2021, 17:32 GMT
Reason for closing:  Upstream
Additional comments about closing:  Ask upstream for Wayland support.
Comment by Balló György (City-busz) - Thursday, 13 May 2021, 10:34 GMT
No, it's not caused by the patch. It fails to run even without it when you try to open an image directly. Wayland was never supported by GPicView. You can open an upstream feature request if you want:
https://sourceforge.net/p/lxde/bugs/search/?q=labels:gpicview

As a workaround, you can launch gpicview by setting GDK_BACKEND to x11:
$ GDK_BACKEND=x11 gpicview path/to/image

Loading...