Bug#948380: GIMP crash with floating point exception on image save.

Bernhard Übelacker bernhardu at mailbox.org
Wed Jan 8 01:44:17 GMT 2020


Dear Maintainer,
when comparing with a process while having debug symbols
installed, I guess the given backtrace would translate to
something like below.

Therefore I guess this crash is the same
as described in #929113.

Unfortunately I could not find a matching appearance of
function gimp_projection_chunk_render_iteration.

Additionally upstream has highly modified this file already.

Therefore, if this is reproducable, running with installed debug
symbol packages "gimp-dbgsym libglib2.0-0-dbgsym libgimp2.0-dbgsym" [1]
and an attached gdb, issuing at the crash the commands 'info reg'
and 'thread apply all bt full' could give some more insight.

Kind regards,
Bernhard



Submitter:                                                          | Reconstructed:
[0x7f05c7726e27] libgimpbase-2.0.so.0(gimp_stack_trace_print+0x397) | 0x00007fc6d8ca8e27 in gimp_stack_trace_print () from /lib/libgimpbase-2.0.so.0
[0x56063cab94a0] gimp-2.10(+0xd14a0)                                | 0x000055b3604154a0 in gimp_eek () at errors.c:377
[0x56063cab98d8] gimp-2.10(+0xd18d8)                                | 0x000055b3604158d8 in gimp_fatal_error () at errors.c:234
[0x56063caba037] gimp-2.10(+0xd2037)                                | 0x000055b360416037 in gimp_sigfatal_handler (sig_num=8) at signals.c:165
[0x7f05c6a2e730] libpthread.so.0(+0x12730)                          | <signal handler called>
[0x56063ce2b97f] gimp-2.10(+0x44397f)                               | 0x000055b36078797f in gimp_projection_chunk_render_iteration () at gimpprojection.c:1416
[0x56063ce2bc28] gimp-2.10(+0x443c28)                               | 0x000055b360787c28 in gimp_projection_chunk_render_callback () at gimpprojection.c:857
[0x7f05c6c12dd8] libglib-2.0.so.0(g_main_context_dispatch+0x158)    | 0x00007fc6d8194dd8 in g_main_dispatch () at ../../../glib/gmain.c:3182
[0x7f05c6c131c8] libglib-2.0.so.0(+0x4e1c8)                         | 0x00007fc6d81951c8 in g_main_context_iterate () at ../../../glib/gmain.c:3920
[0x7f05c6c134c2] libglib-2.0.so.0(g_main_loop_run+0xb2)             | 0x00007fc6d81954c2 in g_main_loop_run () at ../../../glib/gmain.c:4116
[0x56063cab8cb7] gimp-2.10(app_run+0x357)                           | 0x000055b360414cb7 in app_run () at app.c:440
[0x56063cab85b5] gimp-2.10(main+0x395)                              | 0x000055b3604145b5 in main () at main.c:524
[0x7f05c687d09b] libc.so.6(__libc_start_main+0xeb)                  | 0x00007fc6d7dff09b in __libc_start_main () at ../csu/libc-start.c:308
[0x56063cab873a] gimp-2.10(_start+0x2a)                             | 0x000055b36041473a in _start ()



[1] https://wiki.debian.org/HowToGetABacktrace#Installing_the_debugging_symbols
-------------- next part --------------


# Buster/stable amd64 qemu VM 2020-01-08

apt update
apt dist-upgrade


apt install systemd-coredump xserver-xorg sddm openbox xterm binutils gdb gimp gimp-dbgsym libglib2.0-0-dbgsym libgimp2.0-dbgsym


gdb -q --pid $(pidof gimp-2.10

set width 0
set pagination off
set backtrace past-main





Submitter:                                                          | Reconstructed:
[0x7f05c7726e27] libgimpbase-2.0.so.0(gimp_stack_trace_print+0x397) | 0x00007fc6d8ca8e27 in gimp_stack_trace_print () from /lib/libgimpbase-2.0.so.0
[0x56063cab94a0] gimp-2.10(+0xd14a0)                                | 0x000055b3604154a0 in gimp_eek () at errors.c:377
[0x56063cab98d8] gimp-2.10(+0xd18d8)                                | 0x000055b3604158d8 in gimp_fatal_error () at errors.c:234
[0x56063caba037] gimp-2.10(+0xd2037)                                | 0x000055b360416037 in gimp_sigfatal_handler (sig_num=8) at signals.c:165
[0x7f05c6a2e730] libpthread.so.0(+0x12730)                          | <signal handler called>
[0x56063ce2b97f] gimp-2.10(+0x44397f)                               | 0x000055b36078797f in gimp_projection_chunk_render_iteration () at gimpprojection.c:1416
[0x56063ce2bc28] gimp-2.10(+0x443c28)                               | 0x000055b360787c28 in gimp_projection_chunk_render_callback () at gimpprojection.c:857
[0x7f05c6c12dd8] libglib-2.0.so.0(g_main_context_dispatch+0x158)    | 0x00007fc6d8194dd8 in g_main_dispatch () at ../../../glib/gmain.c:3182
[0x7f05c6c131c8] libglib-2.0.so.0(+0x4e1c8)                         | 0x00007fc6d81951c8 in g_main_context_iterate () at ../../../glib/gmain.c:3920
[0x7f05c6c134c2] libglib-2.0.so.0(g_main_loop_run+0xb2)             | 0x00007fc6d81954c2 in g_main_loop_run () at ../../../glib/gmain.c:4116
[0x56063cab8cb7] gimp-2.10(app_run+0x357)                           | 0x000055b360414cb7 in app_run () at app.c:440
[0x56063cab85b5] gimp-2.10(main+0x395)                              | 0x000055b3604145b5 in main () at main.c:524
[0x7f05c687d09b] libc.so.6(__libc_start_main+0xeb)                  | 0x00007fc6d7dff09b in __libc_start_main () at ../csu/libc-start.c:308
[0x56063cab873a] gimp-2.10(_start+0x2a)                             | 0x000055b36041473a in _start ()




benutzer at debian:~$ addr2line --exe=/lib/x86_64-linux-gnu/libpthread.so.0 -i -f -p -a +0x12730
0x0000000000012730: __restore_rt at ??:?

benutzer at debian:~$ addr2line --exe=/usr/bin/gimp-2.10 -i -f -p -a +0x44397f
0x000000000044397f: gimp_projection_chunk_render_iteration at ./app/core/gimpprojection.c:1014

benutzer at debian:~$ addr2line --exe=/usr/bin/gimp-2.10 -i -f -p -a +0x443c28
0x0000000000443c28: gimp_projection_chunk_render_callback at ./app/core/gimpprojection.c:857

benutzer at debian:~$ addr2line --exe=/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 -i -f -p -a +0x4e1c8
0x000000000004e1c8: g_main_context_iterate at ./debian/build/deb/../../../glib/gmain.c:3920






(gdb) disassemble gimp_projection_chunk_render_iteration
Dump of assembler code for function gimp_projection_chunk_render_iteration:
   0x000055b360787800 <+0>:     push   %r15
...
   0x000055b360787967 <+359>:   pxor   %xmm0,%xmm0
   0x000055b36078796b <+363>:   cmovl  %r8d,%eax
   0x000055b36078796f <+367>:   cmp    %r13d,%eax
   0x000055b360787972 <+370>:   mov    %eax,%r12d
   0x000055b360787975 <+373>:   mov    0x4c(%rbx),%eax
   0x000055b360787978 <+376>:   cmovg  %r13d,%r12d
   0x000055b36078797c <+380>:   xor    %edi,%edi
   0x000055b36078797e <+382>:   cltd   
   0x000055b36078797f <+383>:   idiv   %r12d
   0x000055b360787982 <+386>:   cvtsi2sd %eax,%xmm0
   0x000055b360787986 <+390>:   callq  0x55b360787500 <gimp_projection_round_chunk_size>
   0x000055b36078798b <+395>:   cmp    $0x800,%ebp
   0x000055b360787991 <+401>:   mov    $0x800,%esi
   0x000055b360787996 <+406>:   mov    (%rsp),%ecx
   0x000055b360787999 <+409>:   cmovg  %esi,%ebp
   0x000055b36078799c <+412>:   mov    $0x80,%r8d
   0x000055b3607879a2 <+418>:   cmp    $0x80,%eax
   0x000055b3607879a7 <+423>:   cmovl  %r8d,%eax
   0x000055b3607879ab <+427>:   cmp    %ebp,%eax
...
   0x000055b360787a27 <+551>:   jmpq   0x55b36078793b <gimp_projection_chunk_render_iteration+315>
End of assembler dump.






https://sources.debian.org/src/gimp/2.10.8-2/app/core/gimpprojection.c/#L1416
https://sources.debian.org/src/gimp/2.10.8-2/app/core/gimpprojection.c/#L1014


More information about the pkg-gnome-maintainers mailing list