Bug#920205: gimp: Hangs at startup trying to show toolbox window

Matthew Gabeler-Lee cheetah at fastcat.org
Tue Jan 22 17:44:10 GMT 2019


Package: gimp
Version: 2.10.8-2
Severity: important

After updating from stretch->buster, gimp no longer starts for me.

I took a look at #903514, but it does _not_ appear to be the issue I'm
having: for one, when I first encountered this, I had neither gimp-python
nor any openblas packages installed.

Second, I took a backtrace in GDB, and it does not look at all like the ones
posted to that bug.

I also took a look at #672894, but that is for a much much older version,
and also does not look like my issue.

I tried moving away my gimp config directory, and while that changes the
backtrace, it does not change the behavior.

Here is the last few lines of output (ran with --verbose) and then the main
thread backtrace for the hang when running with a ~/.config/GIMP/... directory:

Starting extension: 'extension-script-fu'
[Detaching after vfork from child process 16833]
INIT: gui_restore_after_callback
Parsing '/home/cheetah/.config/GIMP/2.10/menurc'
Parsing '/home/cheetah/.config/GIMP/2.10/action-history'
Parsing '/home/cheetah/.config/GIMP/2.10/devicerc'
Parsing '/home/cheetah/.config/GIMP/2.10/controllerrc'
loading menu '/usr/share/gimp/2.0/menus/image-menu.xml' for /image-menubar
^C/usr/lib/gimp/2.0/plug-ins/script-fu/script-fu terminated: Interrupt

Thread 1 "gimp" received signal SIGINT, Interrupt.
0x00007ffff69d6b39 in __GI___poll (fds=0x5555560ccb60, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29	../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
(gdb) bt
#0  0x00007ffff69d6b39 in __GI___poll (fds=0x5555560ccb60, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6ca2016 in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0x5555560ccb60, timeout=<optimized out>, context=0x555555d7b190) at ../../../glib/gmain.c:4221
#2  g_main_context_iterate (context=context at entry=0x555555d7b190, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at ../../../glib/gmain.c:3915
#3  0x00007ffff6ca213c in g_main_context_iteration (context=0x555555d7b190, may_block=1) at ../../../glib/gmain.c:3981
#4  0x00007ffff7c06b01 in gtk_main_iteration () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#5  0x00007ffff7d256c5 in gtk_widget_show_now () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#6  0x0000555555799ad1 in gimp_dialog_factory_dialog_new_internal (factory=factory at entry=0x55555607c6d0, screen=screen at entry=0x555555da69d0, monitor=monitor at entry=0, 
    context=<optimized out>, ui_manager=ui_manager at entry=0x0, identifier=identifier at entry=0x555558180ba0 "gimp-toolbox-window", view_size=0, return_existing=0, present=1, 
    create_containers=0) at gimpdialogfactory.c:666
#7  0x0000555555799f14 in gimp_dialog_factory_dialog_new (factory=factory at entry=0x55555607c6d0, screen=screen at entry=0x555555da69d0, monitor=monitor at entry=0, ui_manager=ui_manager at entry=0x0, 
    identifier=0x555558180ba0 "gimp-toolbox-window", view_size=view_size at entry=0, present=1) at gimpdialogfactory.c:702
#8  0x000055555565fbb2 in dialogs_restore_dialog (factory=0x55555607c6d0, screen=0x555555da69d0, monitor=0, info=<optimized out>) at dialogs.c:473
#9  0x00005555557ec187 in gimp_session_info_restore (info=0x5555562a4a60, factory=0x55555607c6d0, screen=0x555555da69d0, monitor=0) at gimpsessioninfo.c:573
#10 0x000055555579b202 in gimp_dialog_factory_restore (factory=0x55555607c6d0, screen=screen at entry=0x555555da69d0, monitor=monitor at entry=0) at gimpdialogfactory.c:1455
#11 0x000055555562b005 in session_restore (gimp=gimp at entry=0x555555dd2090, screen=0x555555da69d0, monitor=0) at session.c:340
#12 0x0000555555627b05 in gui_restore_after_callback (gimp=0x555555dd2090, status_callback=<optimized out>) at gui.c:714
#13 0x00007ffff6d83c7d in g_closure_invoke (closure=0x5555560f8420, return_value=0x0, n_param_values=2, param_values=0x7fffffffdd80, invocation_hint=0x7fffffffdd00)
    at ../../../gobject/gclosure.c:810
#14 0x00007ffff6d96e2e in signal_emit_unlocked_R (node=node at entry=0x555555dcb2c0, detail=detail at entry=0, instance=instance at entry=0x555555dd2090, emission_return=emission_return at entry=0x0, 
    instance_and_params=instance_and_params at entry=0x7fffffffdd80) at ../../../gobject/gsignal.c:3705
#15 0x00007ffff6da02c2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args at entry=0x7fffffffdf50)
    at ../../../gobject/gsignal.c:3391
#16 0x00007ffff6da090f in g_signal_emit (instance=instance at entry=0x555555dd2090, signal_id=<optimized out>, detail=detail at entry=0) at ../../../gobject/gsignal.c:3447
#17 0x00005555558e13fd in gimp_restore (gimp=gimp at entry=0x555555dd2090, status_callback=status_callback at entry=0x55555562c710 <splash_update>, error=error at entry=0x7fffffffe098) at gimp.c:797
#18 0x0000555555624e03 in app_run (full_prog_name=<optimized out>, filenames=<optimized out>, alternate_system_gimprc=<optimized out>, alternate_gimprc=0x0, session_name=<optimized out>, 
    batch_interpreter=0x0, batch_commands=0x0, as_new=0, no_interface=0, no_data=0, no_fonts=0, no_splash=0, be_verbose=1, use_shm=1, use_cpu_accel=1, console_messages=0, 
    use_debug_handler=0, show_playground=0, show_debug_menu=0, stack_trace_mode=GIMP_STACK_TRACE_NEVER, pdb_compat_mode=GIMP_PDB_COMPAT_ON, 
    backtrace_file=0x555555cbd820 "/home/cheetah/.config/GIMP/2.10/CrashLog/GIMP-crash-1548177808.txt") at app.c:337
#19 0x00005555556245b5 in main (argc=<optimized out>, argv=<optimized out>) at main.c:524

Here's the same with no gimp dir:

#0  0x00007ffff69d6b39 in __GI___poll (fds=0x5555560f8f40, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6ca2016 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x5555560f8f40, timeout=<optimized out>, context=0x555555d7b190) at ../../../glib/gmain.c:4221
#2  g_main_context_iterate (context=0x555555d7b190, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at ../../../glib/gmain.c:3915
#3  0x00007ffff6ca23a2 in g_main_loop_run (loop=0x555558aa9f90) at ../../../glib/gmain.c:4116
#4  0x0000555555624cb7 in app_run (full_prog_name=<optimized out>, filenames=<optimized out>, alternate_system_gimprc=<optimized out>, alternate_gimprc=<optimized out>, 
    session_name=<optimized out>, batch_interpreter=0x0, batch_commands=0x0, as_new=0, no_interface=0, no_data=0, no_fonts=0, no_splash=0, be_verbose=1, use_shm=1, use_cpu_accel=1, 
    console_messages=0, use_debug_handler=0, show_playground=0, show_debug_menu=0, stack_trace_mode=GIMP_STACK_TRACE_NEVER, pdb_compat_mode=GIMP_PDB_COMPAT_ON, 
    backtrace_file=0x555555cbd820 "/home/cheetah/.config/GIMP/2.10/CrashLog/GIMP-crash-1548178792.txt") at app.c:440
#5  0x00005555556245b5 in main (argc=<optimized out>, argv=<optimized out>) at main.c:524

Note that, if I kill the script-fu process, gimp "notices" this, but it does
not change the hang.

The two file descriptors on which g_main_context_poll is waiting (in either
case) after script-fu dies are an eventfd, and a socket.  I can't tell for
sure where the other "end" of that socket goes, but I think it may be just
to another thread within gimp itself?  Looking through lsof and
/proc/net/unix and /proc/*/fd/* doesn't find anything that looks like
another end of that socket.  The scoket with the next closest inode (+2) is
another fd of the gimp process.

I notice that the "loading menu" line never seems to make it to any other
menu files, and it also doesn't change if I move that menu file (or even all
the menu files) out of the way so it can't find them.

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-debug'), (500, 'stable'), (500, 'oldstable'), (490, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.20.0-trunk-amd64 (SMP w/16 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages gimp depends on:
ii  gimp-data            2.10.8-2
ii  libaa1               1.4p5-45
ii  libbabl-0.1-0        0.1.60-2
ii  libbz2-1.0           1.0.6-9
ii  libc6                2.28-5
ii  libcairo2            1.16.0-2
ii  libfontconfig1       2.13.1-2
ii  libfreetype6         2.9.1-3
ii  libgcc1              1:8.2.0-14
ii  libgdk-pixbuf2.0-0   2.38.0+dfsg-7
ii  libgegl-0.4-0        0.4.12-2
ii  libgexiv2-2          0.10.9-1
ii  libgimp2.0           2.10.8-2
ii  libglib2.0-0         2.58.2-3
ii  libgs9               9.26~dfsg-2
ii  libgtk2.0-0          2.24.32-3
ii  libgudev-1.0-0       232-2
ii  libharfbuzz0b        2.3.0-1
ii  libheif1             1.3.2-1+b1
ii  libilmbase23         2.2.1-2
ii  libjpeg62-turbo      1:1.5.2-2+b1
ii  liblcms2-2           2.9-3
ii  liblzma5             5.2.2-1.3
ii  libmng1              1.0.10+dfsg-3.1+b5
ii  libmypaint-1.3-0     1.3.0-2
ii  libopenexr23         2.2.1-4
ii  libopenjp2-7         2.3.0-1.1
ii  libpango-1.0-0       1.42.4-6
ii  libpangocairo-1.0-0  1.42.4-6
ii  libpangoft2-1.0-0    1.42.4-6
ii  libpng16-16          1.6.36-2
ii  libpoppler-glib8     0.71.0-2
ii  librsvg2-2           2.44.10-1
ii  libstdc++6           8.2.0-14
ii  libtiff5             4.0.10-3
ii  libwebp6             0.6.1-2
ii  libwebpdemux2        0.6.1-2
ii  libwebpmux3          0.6.1-2
ii  libwmf0.2-7          0.2.8.4-14
ii  libx11-6             2:1.6.7-1
ii  libxcursor1          1:1.1.15-2
ii  libxext6             2:1.3.3-1+b2
ii  libxfixes3           1:5.0.3-1
ii  libxmu6              2:1.1.2-2
ii  libxpm4              1:3.5.12-1
ii  xdg-utils            1.1.3-1
ii  zlib1g               1:1.2.11.dfsg-1

Versions of packages gimp recommends:
ii  ghostscript  9.26~dfsg-2

Versions of packages gimp suggests:
ii  gimp-data-extras          1:2.0.2-1
ii  gimp-help-en [gimp-help]  2.8.2-1
ii  gimp-python               2.10.8-2
pn  gvfs-backends             <none>
ii  libasound2                1.1.7-2

-- no debconf information



More information about the pkg-gnome-maintainers mailing list