Closed g3n35i5 closed 3 years ago
I don't see Address boundary error in your log
@DarthGandalf sorry, please see my updated comment
Can you share the stack trace from gdb?
@DarthGandalf I'm not quite shure how to start it with gdb but i hope strace works as well? shutter_strace.txt
I'm not quite shure how to start it
Yeah, since it's perl, may be not trivial
$ gdb --args perl /usr/bin/shutter
GNU gdb (Gentoo 10.2 vanilla) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from perl...
Reading symbols from /usr/lib/debug//usr/bin/perl.debug...
(gdb) run
Starting program: /usr/bin/perl /usr/bin/shutter
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff6e4a640 (LWP 10259)]
..............
hope strace works as well
not really. Maybe it'll be useful after seeing where exactly it crashes though, not sure
The output is quite the same, this is the last part of gdb:
INFO: new upload-plugin information detected - /usr/share/shutter/resources/system/upload_plugins/upload/vgyme
[Detaching after fork from child process 62922]
[Detaching after fork from child process 62923]
[Detaching after fork from child process 62930]
[Detaching after fork from child process 62931]
[Detaching after fork from child process 62932]
[Detaching after fork from child process 62933]
[Detaching after fork from child process 62934]
[Detaching after fork from child process 62935]
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
[New Thread 0x7fffef1f6640 (LWP 62936)]
[New Thread 0x7fffe385f640 (LWP 62937)]
[Thread 0x7fffef1f6640 (LWP 62936) exited]
[Thread 0x7fffe385f640 (LWP 62937) exited]
[New Thread 0x7fffe385f640 (LWP 62938)]
[New Thread 0x7fffef1f6640 (LWP 62939)]
type_changed was emitted by widget Gtk3::ComboBoxText=HASH(0x55555a356f58)
qvalue_changed was emitted by widget Gtk3::HScale=HASH(0x55555a3570a8)
[New Thread 0x7fffe305e640 (LWP 62941)]
undefined value for mandatory argument 'filename' encountered at /usr/bin/shutter line 1223, <DATA> line 19.
Shutter::App::STARTUP(Shutter::App=HASH(0x55555a1560c8)) called at /usr/lib/perl5/5.34/vendor_perl/Glib/Object/Introspection.pm line 67
Glib::Object::Introspection::__ANON__(Shutter::App=HASH(0x55555a1560c8)) called at /usr/bin/shutter line 10828
Thread 1 "perl" received signal SIGSEGV, Segmentation fault.
0x00007ffff73df46c in ?? () from /usr/lib/libgobject-2.0.so.0
(gdb)
(gdb) bt full
(gdb) bt full
#0 0x00007ffff73df46c in () at /usr/lib/libgobject-2.0.so.0
#1 0x00007ffff73d2cad in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#2 0x00007ffff73d3210 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#3 0x00007ffff5e14852 in () at /usr/lib/libgtk-3.so.0
#4 0x00007ffff73c2785 in g_object_unref () at /usr/lib/libgobject-2.0.so.0
#5 0x00007ffff5bdaa3c in gtk_container_remove () at /usr/lib/libgtk-3.so.0
#6 0x00007ffff5e14775 in () at /usr/lib/libgtk-3.so.0
#7 0x00007ffff73c2785 in g_object_unref () at /usr/lib/libgobject-2.0.so.0
#8 0x00007ffff741dde9 in XS_Glib__Object_DESTROY () at /usr/lib/perl5/5.34/vendor_perl/auto/Glib/Glib.so
#9 0x00007ffff7d4afa8 in Perl_pp_entersub () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#10 0x00007ffff7ca58c7 in Perl_call_sv () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#11 0x00007ffff7d4efc7 in S_curse () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#12 0x00007ffff7d4f708 in Perl_sv_clear () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#13 0x00007ffff7d4fcef in Perl_sv_free2 () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#14 0x00007ffff7d50559 in Perl_sv_clean_objs () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#15 0x00007ffff7ca8514 in perl_destruct () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#16 0x000055555555517d in main ()
(gdb)
Any chance you can rebuild libgobject and libgtk with debug symbols? Or perhaps they are available in a separate package like in debian?
Just one second...
perl_destruct
in the stack above is quite surprising: looks like perl is already trying to shut down for whatever reason, but crashes in the process of shut down
@g3n35i5 is it currently the git version or 0.96?
Yes, but the "stable" version didn't work either
That was not a yes/no question. The line numbers don't match between the two, so I need to know which lines I need to look at
Oh dang sorry missed that. It's the git version
It takes a long time to build the libraries...
@DarthGandalf
INFO: new upload-plugin information detected - /usr/share/shutter/resources/system/upload_plugins/upload/vgyme
[Detaching after fork from child process 108403]
[Detaching after fork from child process 108404]
[Detaching after fork from child process 108405]
[Detaching after fork from child process 108406]
[Detaching after fork from child process 108407]
[Detaching after fork from child process 108420]
[Detaching after fork from child process 108421]
[Detaching after fork from child process 108422]
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
Current window manager: i3
[New Thread 0x7fffef1e3640 (LWP 108423)]
[New Thread 0x7fffe385f640 (LWP 108424)]
[Thread 0x7fffef1e3640 (LWP 108423) exited]
[Thread 0x7fffe385f640 (LWP 108424) exited]
[New Thread 0x7fffe385f640 (LWP 108425)]
[New Thread 0x7fffef1e3640 (LWP 108426)]
type_changed was emitted by widget Gtk3::ComboBoxText=HASH(0x55555a262af0)
qvalue_changed was emitted by widget Gtk3::HScale=HASH(0x55555a262c40)
[New Thread 0x7fffe305e640 (LWP 108428)]
undefined value for mandatory argument 'filename' encountered at /usr/bin/shutter line 1223, <DATA> line 19.
Shutter::App::STARTUP(Shutter::App=HASH(0x55555a158960)) called at /usr/lib/perl5/5.34/vendor_perl/Glib/Object/Introspection.pm line 67
Glib::Object::Introspection::__ANON__(Shutter::App=HASH(0x55555a158960)) called at /usr/bin/shutter line 10828
Thread 1 "perl" received signal SIGSEGV, Segmentation fault.
0x00007ffff73d18a4 in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0
(gdb) bt full
#0 0x00007ffff73d18a4 in signal_emit_unlocked_R () at /usr/lib/libgobject-2.0.so.0
#1 0x00007ffff73d3107 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#2 0x00007ffff73d3364 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#3 0x00007ffff5e09f0a in gtk_widget_dispose (object=0x55555a5c9590) at ../gtk/gtk/gtkwidget.c:12162
widget = 0x55555a5c9590
priv = 0x55555a5c94a0
sizegroups = <optimized out>
#4 0x00007ffff73c1c31 in g_object_unref () at /usr/lib/libgobject-2.0.so.0
#5 0x00007ffff5bc892c in gtk_container_remove (container=0x55555a5bbed0, widget=0x55555a5c9590)
at ../gtk/gtk/gtkcontainer.c:1910
__func__ = "gtk_container_remove"
#6 0x00007ffff5e5b76a in gtk_image_menu_item_destroy (widget=0x55555a5bbed0)
at ../gtk/gtk/deprecated/gtkimagemenuitem.c:407
image_menu_item = 0x55555a5bbed0
priv = <optimized out>
#7 0x00007ffff73b4f4f in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#8 0x00007ffff73d1361 in signal_emit_unlocked_R () at /usr/lib/libgobject-2.0.so.0
#9 0x00007ffff73d3107 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#10 0x00007ffff73d3364 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff5e09f0a in gtk_widget_dispose (object=0x55555a5bbed0) at ../gtk/gtk/gtkwidget.c:12162
widget = 0x55555a5bbed0
priv = 0x55555a5bbde0
sizegroups = <optimized out>
#12 0x00007ffff73c1c31 in g_object_unref () at /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff741dde9 in XS_Glib__Object_DESTROY () at /usr/lib/perl5/5.34/vendor_perl/auto/Glib/Glib.so
#14 0x00007ffff7d4afa8 in Perl_pp_entersub () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#15 0x00007ffff7ca58c7 in Perl_call_sv () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#16 0x00007ffff7d4efc7 in S_curse () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#17 0x00007ffff7d4f708 in Perl_sv_clear () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#18 0x00007ffff7d4fcef in Perl_sv_free2 () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#19 0x00007ffff7d50559 in Perl_sv_clean_objs () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#20 0x00007ffff7ca8514 in perl_destruct () at /usr/lib/perl5/5.34/core_perl/CORE/libperl.so
#21 0x000055555555517d in main ()
(gdb)
I think this is duplicate of #334
Can you try this patch?
diff --git a/bin/shutter b/bin/shutter
index fa701af7..d5fa8a14 100755
--- a/bin/shutter
+++ b/bin/shutter
@@ -1217,10 +1217,13 @@ sub STARTUP {
#--------------------------------------
my $saveDir_label = Gtk3::Label->new($d->get("Directory") . ":");
my $saveDir_button = Gtk3::FileChooserButton->new("Shutter - " . $d->get("Choose folder"), 'select-folder');
- if (defined $settings_xml->{'general'}->{'folder'}) {
- $saveDir_button->set_current_folder($settings_xml->{'general'}->{'folder'});
- } else {
- $saveDir_button->set_current_folder(Glib::get_user_special_dir('pictures'));
+ for my $saveDir_dir ($settings_xml->{'general'}->{'folder'},
+ Glib::get_user_special_dir('pictures'),
+ Glib::get_home_dir()) {
+ if (defined $saveDir_dir) {
+ $saveDir_button->set_current_folder($saveDir_dir);
+ last;
+ }
}
$saveDir_button->set_tooltip_text($d->get("Your screenshots will be saved to this directory"));
@DarthGandalf wow awesome! Works perfectly, thank you so much!
Brief summary of issue
Shutter fails to start and terminates due to an Address boundary error. Happens with both, "plain" shutter from aur and shutter-git.
Steps to reproduce the issue
Error output
Edit: I forgot the call output:
Extra information, such as Shutter version, operating system and ideas for how to solve: