FS#77994 - [inkscape] Crash when exporting files from the command line

Attached to Project: Arch Linux
Opened by kaztai (kaztai) - Saturday, 25 March 2023, 10:36 GMT
Last edited by Toolybird (Toolybird) - Friday, 12 May 2023, 23:44 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
When I tried to run Inkscape command line and output the file, it started crashing.
It seems that the cause was upgrading glib2 from 2.74.6-1 to 2.76.0-1.
When I rolled back to 2.74.6-1, the problem went away.
Is it because gtk3 is not compatible with glib2-2.76.0-1?

Additional info:
Version: inkscape 1.2.2-4

Steps to reproduce:
* upgrade: glib2-2.76.0-1
* run: inkscape /tmp/test.svg --export-file=/tmp/test.png
* crash: Segmentation fault (core dumped)

gdb backtrace:
#0 gtk_application_set_screensaver_active (active=0, application=0x6e656d75636f642f) at ../gtk/gtk/gtkapplication.c:1671
#1 ss_get_active_cb (source=<optimized out>, result=<optimized out>, data=0x55555585d0a0) at ../gtk/gtk/gtkapplication-dbus.c:251
#2 0x00007ffff56327f4 in g_task_return_now (task=0x55555587c840) at ../glib/gio/gtask.c:1309
#3 0x00007ffff56365ed in g_task_return (type=<optimized out>, task=0x55555587c840) at ../glib/gio/gtask.c:1378
#4 g_task_return (task=0x55555587c840, type=<optimized out>) at ../glib/gio/gtask.c:1335
#5 0x00007ffff569fe9e in reply_cb (connection=<optimized out>, res=<optimized out>, user_data=0x55555587c840) at ../glib/gio/gdbusproxy.c:2571
#6 0x00007ffff56327f4 in g_task_return_now (task=0x5555557bb8a0) at ../glib/gio/gtask.c:1309
#7 0x00007ffff56365ed in g_task_return (type=<optimized out>, task=0x5555557bb8a0) at ../glib/gio/gtask.c:1378
#8 g_task_return (task=0x5555557bb8a0, type=<optimized out>) at ../glib/gio/gtask.c:1335
#9 0x00007ffff568d1d3 in g_dbus_connection_call_done (source=<optimized out>, result=<optimized out>, user_data=0x5555557bb8a0)
at ../glib/gio/gdbusconnection.c:5885
#10 0x00007ffff56327f4 in g_task_return_now (task=0x55555587cb70) at ../glib/gio/gtask.c:1309
#11 0x00007ffff563282d in complete_in_idle_cb (task=0x55555587cb70) at ../glib/gio/gtask.c:1323
#12 0x00007ffff7e9eafb in g_main_dispatch (context=0x5555556186c0) at ../glib/glib/gmain.c:3460
#13 g_main_context_dispatch (context=0x5555556186c0) at ../glib/glib/gmain.c:4200
#14 0x00007ffff7efb5d9 in g_main_context_iterate.constprop.0 (context=0x5555556186c0, block=0, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
#15 0x00007ffff7e9c382 in g_main_context_iteration (context=context@entry=0x5555556186c0, may_block=may_block@entry=0) at ../glib/glib/gmain.c:4343
#16 0x00007ffff5667e02 in g_application_run (application=0x55555579eb50, argc=<optimized out>, argv=<optimized out>) at ../glib/gio/gapplication.c:2604
#17 0x00007ffff5e3c790 in __libc_start_call_main (main=main@entry=0x555555556190 <main(int, char**)>, argc=argc@entry=3, argv=argv@entry=0x7fffffffe108)
at ../sysdeps/nptl/libc_start_call_main.h:58
#18 0x00007ffff5e3c84a in __libc_start_main_impl
(main=0x555555556190 <main(int, char**)>, argc=3, argv=0x7fffffffe108, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe0f8) at ../csu/libc-start.c:360
#19 0x0000555555556d75 in _start ()
This task depends upon

Closed by  Toolybird (Toolybird)
Friday, 12 May 2023, 23:44 GMT
Reason for closing:  Upstream
Additional comments about closing:  See comments
Comment by Toolybird (Toolybird) - Saturday, 25 March 2023, 22:06 GMT
Cannot repro. Works fine for me in a freshly installed GNOME VM.

BTW, glib2 is now on version 2.76.1-1 so your system appears out-of-date. Please update fully, reboot, then try again. Are you using debuginfod [1] to get the backtrace?

[1] https://wiki.archlinux.org/title/Debugging/Getting_traces#Debuginfod
Comment by kaztai (kaztai) - Sunday, 26 March 2023, 07:55 GMT
Thank you for checking. I will also try to test it using a freshly installed VM. I have not used debuginfod. I will also try it.
Comment by Toolybird (Toolybird) - Wednesday, 05 April 2023, 02:21 GMT
Dupe  FS#78117 
Comment by Toolybird (Toolybird) - Wednesday, 05 April 2023, 03:27 GMT
Still cannot repro even with a screensaver active as per this comment [1]

[1] https://gitlab.com/inkscape/inkscape/-/issues/4177#note_1332994776
Comment by kaztai (kaztai) - Wednesday, 05 April 2023, 09:03 GMT
Thank you for the link. This is the same issue.
I tried it by creating a VM in VirtualBox, but the problem did not occur in that case.
I also tried using debuginfod, but there seems to be no difference.
I will try changing the screensaver settings to see if it resolves the issue.
Comment by kaztai (kaztai) - Friday, 07 April 2023, 07:53 GMT
Comment by kaztai (kaztai) - Friday, 07 April 2023, 08:02 GMT
I found a way to reproduce the issue. Please try the following steps:

1. Create a sample file:
"$ touch /tmp/亜亜亜亜亜亜aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt"
Alternatively, extract the attached zip file and place it in /tmp.
2. Launch the Files app.
3. Open the sample file in a text editor such as Gedit.
4. Check the Files app's "Recent" tab to confirm the sample file is listed.
5. Run the test for Inkscape.

It seems that the screensaver is not related to the issue. The error occurs when a specific file path is recorded in ~/.local/share/recently-used.xbel under certain conditions, such as having several multi-byte characters and a path length above a certain threshold.
Comment by kaztai (kaztai) - Tuesday, 11 April 2023, 15:01 GMT
I have found clearer reproduction conditions for this issue:

* GDM + Gnome
* glib2 2.76 or later
* The path that meets the conditions is included in Recent.
* Execute inkscape on the CLI on Gnome.

It seems that the screensaver is related to GDM.
I was able to reproduce the issue not only on Arch, but also on a fedora38 VM.
Comment by Toolybird (Toolybird) - Friday, 12 May 2023, 23:44 GMT
> I was able to reproduce the issue not only on Arch, but also on a fedora38 VM.

Which confirms it's an upstream issue.

Loading...