shutter-project / shutter

Screenshot tool for Linux
https://shutter-project.org/
GNU General Public License v3.0
503 stars 34 forks source link

[abrt] shutter: emission_find(): perl killed by SIGSEGV #573

Closed martinkg closed 10 months ago

martinkg commented 1 year ago

Brief summary of issue

launch shutter, it loads its plugins but crashes before opening

Version-Release number of selected component:

shutter-0.99.3-1.fc37

Error output

Additional info: reporter: libreport-2.17.4 backtrace_rating: 4 cgroup: 0::/user.slice/user-1001.slice/user@1001.service/app.slice/app-gnome-shutter-56211.scope cmdline: /usr/bin/perl /usr/bin/shutter crash_function: emission_find executable: /usr/bin/perl journald_cursor: s=9d64cb5670954881b22b9f4220297b14;i=5db2a;b=3c6d01e917864e2792f418f26bb3aa6e;m=2e6210d96;t=5f7a3f205161a;x=f24280d16dcad998 kernel: 6.2.7-200.fc37.x86_64 rootdir: / runlevel: N 5 type: CCpp uid: 1001

Truncated backtrace: Thread no. 1 (10 frames)

0 emission_find at ../gobject/gsignal.c:895

1 signal_emit_unlocked_R.isra.0 at ../gobject/gsignal.c:3680

4 gtk_widget_dispose at ../gtk/gtkwidget.c:12166

7 gtk_container_remove at ../gtk/gtkcontainer.c:1911

8 gtk_widget_dispose at ../gtk/gtkwidget.c:12155

11 XS_Glib__Object_DESTROY at /usr/src/debug/perl-Glib-1.3293-9.fc37.x86_64/GObject.xs:1301

12 Perl_pp_entersub at /usr/src/debug/perl-5.36.0-492.fc37.x86_64/pp_hot.c:5352

13 Perl_call_sv at /usr/src/debug/perl-5.36.0-492.fc37.x86_64/perl.c:3057

14 S_curse at /usr/src/debug/perl-5.36.0-492.fc37.x86_64/sv.c:6983

15 Perl_sv_clear at /usr/src/debug/perl-5.36.0-492.fc37.x86_64/sv.c:6546

Extra information, such as Shutter version, display server in use (Xorg or Wayland), operating system and ideas for how to solve:

Wayland is used on Fedora 37

Backtrace file

backtrace.txt

Photon89 commented 1 year ago

I think, this is fixed in 0.99.4: https://github.com/shutter-project/shutter/issues/568 Would be great if you could bump the Fedora package to 0.99.4!

martinkg commented 1 year ago

fixed with 0.99.4 Thanks

martinkg commented 1 year ago

Hi, a user reported the same issue with the current release 0.99.4 again. See Fedora Bugzilla

Photon89 commented 1 year ago

@martinkg Sorry for late reply. I looked into the backtrace, there is nothing Shutter specific there, as far as I can see. Looks like some problem with underlying libraries. Are there any details regarding how to reproduce this issue? What is Shutter's own output before the crash?

martinkg commented 10 months ago

@photon89: I have received the following information from the user: info from user

Photon89 commented 10 months ago

@martinkg So, did this crash happen just once after the system update or is it reproducible if Shutter is started via autostart? Looks like this is some race condition as the user already pointed out, probably the panel, which should show the tray icon isn't loaded fast enough. I will try to set up a Fedora Cinnamon VM to reproduce it, otherwise it will be hard to fix...

Photon89 commented 10 months ago

Another idea: I could reproduce Shutter failing to launch on a Cinnamon install. The reason is that Cinnamon is too slow to load the panel, so Shutter exits after failing to create a tray icon. Butt Cinnamon has a timeout setting in its autostart configuration. I set it to 20s and it solved the problem for me.

martinkg commented 10 months ago

@martinkg So, did this crash happen just once after the system update or is it reproducible if Shutter is started via autostart? Looks like this is some race condition as the user already pointed out, probably the panel, which should show the tray icon isn't loaded fast enough. I will try to set up a Fedora Cinnamon VM to reproduce it, otherwise it will be hard to fix...

answer from the user: Yes, the SIGSEGV only happened once after the system upgrade, afaicr.

martinkg commented 10 months ago

Another idea: I could reproduce Shutter failing to launch on a Cinnamon install. The reason is that Cinnamon is too slow to load the panel, so Shutter exits after failing to create a tray icon. Butt Cinnamon has a timeout setting in its autostart configuration. I set it to 20s and it solved the problem for me.

answer from the user: I can confirm, that setting a timeout fixes the issue. I set mine to 7s and it works.

However, I feel it would be better if Shutter handles this gracefully by either checking the panel is loaded or by retrying using an internal timer. But I'm no expert on these matters and can live with setting a timeout. I did so in the past as well.

Photon89 commented 10 months ago

Many apps that have tray icons suffer from this issue, it looks to me like there is no good solution for it... I tried to find some workaround to check programmatically whether the tray has started, but couldn't find anything so far.

martinkg commented 10 months ago

thanks for the info.

Photon89 commented 10 months ago

Closing, as there seems to be nothing we can do about the issue.