Bug#914249: Bug #914249: gimp: GIMP Crashed when I was editing a image

Bernhard Übelacker bernhardu at mailbox.org
Wed Nov 21 13:32:16 GMT 2018


Dear Maintainer,
just tried to reconstruct a better readable stack with
function names, that would probably look like this:


0x...e27 | 0x00007ffff79c9e27: 0x00007ffff79c9e22 <gimp_stack_trace_print+914>:     callq  0x7ffff79bf150 <backtrace at plt>
0x...4a0 | 0x00005555556274a0: 0x000055555562749b <gimp_eek+747>:   callq  0x555555621790 <gimp_stack_trace_print at plt>
0x...8d8 | 0x00005555556278d8: 0x00005555556278d3 <gimp_fatal_error+19>:    callq  0x5555556271b0 <gimp_eek>
0x...037 | 0x0000555555628037 <gimp_sigfatal_handler+39>:       callq  0x5555556278f0 <gimp_terminate>
0x...8e0 | 0x00007ffff67068e0 <__restore_rt+0>: mov    $0xf,%rax  ; <signal handler called>
0x...f3b | 0x00007ffff656bf3b: 0x00007ffff656bf39 <__GI_raise+265>: syscall 
0x...2f1 | 0x00007ffff656d2f1: 0x00007ffff656d2ec <__GI_abort+332>: callq  0x7ffff656be30 <__GI_raise>  ; abort.c:79            raise (SIGABRT);
0x...a8a | 0x00007ffff6564a8a: 0x00007ffff6564a85 <__assert_fail_base+325>: callq  0x7ffff656d1a0 <__GI_abort>
0x...b02 | 0x00007ffff6564b02: 0x00007ffff6564afd <__GI___assert_fail+61>:  callq  0x7ffff6564940 <__assert_fail_base>
0x...6bb | 0x00007ffff64326bb: 0x00007ffff64326b6 <poll_for_event+406>:     callq  0x7ffff640bdd0 <__assert_fail at plt>
0x...760 | 0x00007ffff6432760 in poll_for_response (...) at ../../src/xcb_io.c:303
0x...a5d | 0x00007ffff6432a5d in _XEventsQueued (...) at ../../src/xcb_io.c:363
0x...7b7 | 0x00007ffff64247b7 in XPending (...) at ../../src/Pending.c:55
0x...8d5 | 0x00007ffff7a8a8d5 in gdk_check_xpending (...) at ./gdk/x11/gdkevents-x11.c:159
0x...821 | 0x00007ffff68fc821 in g_main_context_check (...) at ../../../../glib/gmain.c:3753
0x...df0 | 0x00007ffff68fcdf0 in g_main_context_iterate (...) at ../../../../glib/gmain.c:3917
0x...1d2 | 0x00007ffff68fd1d2 in g_main_loop_run (...) at ../../../../glib/gmain.c:4116
0x...cb7 | 0x0000555555626cb7 in app_run (...) at app.c:440
0x...5b5 | 0x00005555556265b5 in main (...) at main.c:524


I assume the point where things started to go wrong is in function poll_for_event.


disassemble /m poll_for_event
...
260                                     throw_thread_fail_assert("Unknown sequence "
   0x00007ffff643269c <poll_for_event+380>:     lea    0x7241d(%rip),%rcx        # 0x7ffff64a4ac0 <__PRETTY_FUNCTION__.15060>
   0x00007ffff64326a3 <poll_for_event+387>:     mov    $0x107,%edx
   0x00007ffff64326a8 <poll_for_event+392>:     lea    0x71fc4(%rip),%rsi        # 0x7ffff64a4673
   0x00007ffff64326af <poll_for_event+399>:     lea    0x72152(%rip),%rdi        # 0x7ffff64a4808
   0x00007ffff64326b6 <poll_for_event+406>:     callq  0x7ffff640bdd0 <__assert_fail at plt>
   0x00007ffff64326bb:  nopl   0x0(%rax,%rax,1)
...
(xcb_io.c)


(gdb) list poll_for_event
233     static xcb_generic_reply_t *poll_for_event(Display *dpy, Bool queued_only)
...
258                             if (XLIB_SEQUENCE_COMPARE(event_sequence, >, request))
259                             {
260                                     throw_thread_fail_assert("Unknown sequence "
261                                                              "number while "
262                                                              "processing queue",
263                                                     xcb_xlib_threads_sequence_lost);


If this issue is reproducable the output, when started from a terminal,
could give further information.

In that case would it also be great to have gdb and the debug symbols
installed like described in [1].

Kind regards,
Bernhard

[1] https://wiki.debian.org/HowToGetABacktrace
-------------- next part --------------
> fatal error: Abortado

Stack trace:
```
/usr/lib/libgimpbase-2.0.so.0(gimp_stack_trace_print+0x397)[0x7f8ed515fe27]
gimp-2.10(+0xd34a0)[0x559a57d004a0]
gimp-2.10(+0xd38d8)[0x559a57d008d8]
gimp-2.10(+0xd4037)[0x559a57d01037]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x128e0)[0x7f8ed3e9d8e0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x10b)[0x7f8ed3d01f3b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x151)[0x7f8ed3d032f1]
/lib/x86_64-linux-gnu/libc.so.6(+0x2ea8a)[0x7f8ed3cfaa8a]
/lib/x86_64-linux-gnu/libc.so.6(+0x2eb02)[0x7f8ed3cfab02]
/usr/lib/x86_64-linux-gnu/libX11.so.6(+0x436bb)[0x7f8ed3bc86bb]
/usr/lib/x86_64-linux-gnu/libX11.so.6(+0x43760)[0x7f8ed3bc8760]
/usr/lib/x86_64-linux-gnu/libX11.so.6(_XEventsQueued+0x5d)[0x7f8ed3bc8a5d]
/usr/lib/x86_64-linux-gnu/libX11.so.6(XPending+0x57)[0x7f8ed3bba7b7]
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0(+0x588d5)[0x7f8ed52208d5]
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_check+0x1e1)[0x7f8ed4092821]
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4ddf0)[0x7f8ed4092df0]
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0xb2)[0x7f8ed40931d2]
gimp-2.10(app_run+0x357)[0x559a57cffcb7]
gimp-2.10(main+0x395)[0x559a57cff5b5]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f8ed3ceeb17]
gimp-2.10(_start+0x2a)[0x559a57cff73a]

```



apt install devscripts dpkg-dev xserver-xorg lightdm openbox gdb dbus-x11 gimp gimp-dbgsym libglib2.0-0-dbgsym libgtk2.0-0-dbgsym libx11-6-dbgsym libc6-dbg 

systemctl start lightdm


mkdir glibc/orig -p
cd    glibc/orig
apt source glibc
cd ../..

mkdir libx11-6/orig -p
cd    libx11-6/orig
apt source libx11-6
cd ../..





export DISPLAY=:0
gdb -q --args gimp

directory /home/benutzer/glibc/orig/glibc-2.27/stdlib
directory /home/benutzer/glibc/orig/glibc-2.27/sysdeps
directory /home/benutzer/libx11-6/orig/libx11-1.6.7/src/util
set pagination off
set width 0














> fatal error: Abortado

Stack trace:
```
/usr/lib/libgimpbase-2.0.so.0(gimp_stack_trace_print+0x397)[0x7f8ed515fe27]            | 0x...e27 | 0x00007ffff79c9e27: 0x00007ffff79c9e22 <gimp_stack_trace_print+914>:     callq  0x7ffff79bf150 <backtrace at plt>
gimp-2.10(+0xd34a0)[0x559a57d004a0]                                                    | 0x...4a0 | 0x00005555556274a0: 0x000055555562749b <gimp_eek+747>:   callq  0x555555621790 <gimp_stack_trace_print at plt>
gimp-2.10(+0xd38d8)[0x559a57d008d8]                                                    | 0x...8d8 | 0x00005555556278d8: 0x00005555556278d3 <gimp_fatal_error+19>:    callq  0x5555556271b0 <gimp_eek>
gimp-2.10(+0xd4037)[0x559a57d01037]                                                    | 0x...037 | 0x0000555555628037 <gimp_sigfatal_handler+39>:       callq  0x5555556278f0 <gimp_terminate>
/lib/x86_64-linux-gnu/libpthread.so.0(+0x128e0)[0x7f8ed3e9d8e0]                        | 0x...8e0 | 0x00007ffff67068e0 <__restore_rt+0>: mov    $0xf,%rax  ; <signal handler called>
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x10b)[0x7f8ed3d01f3b]                         | 0x...f3b | 0x00007ffff656bf3b: 0x00007ffff656bf39 <__GI_raise+265>: syscall 
/lib/x86_64-linux-gnu/libc.so.6(abort+0x151)[0x7f8ed3d032f1]                           | 0x...2f1 | 0x00007ffff656d2f1: 0x00007ffff656d2ec <__GI_abort+332>: callq  0x7ffff656be30 <__GI_raise>  ; abort.c:79            raise (SIGABRT);
/lib/x86_64-linux-gnu/libc.so.6(+0x2ea8a)[0x7f8ed3cfaa8a]                              | 0x...a8a | 0x00007ffff6564a8a: 0x00007ffff6564a85 <__assert_fail_base+325>: callq  0x7ffff656d1a0 <__GI_abort>
/lib/x86_64-linux-gnu/libc.so.6(+0x2eb02)[0x7f8ed3cfab02]                              | 0x...b02 | 0x00007ffff6564b02: 0x00007ffff6564afd <__GI___assert_fail+61>:  callq  0x7ffff6564940 <__assert_fail_base>
/usr/lib/x86_64-linux-gnu/libX11.so.6(+0x436bb)[0x7f8ed3bc86bb]                        | 0x...6bb | 0x00007ffff64326bb: 0x00007ffff64326b6 <poll_for_event+406>:     callq  0x7ffff640bdd0 <__assert_fail at plt>
/usr/lib/x86_64-linux-gnu/libX11.so.6(+0x43760)[0x7f8ed3bc8760]                        | 0x...760 | 0x00007ffff6432760 in poll_for_response (...) at ../../src/xcb_io.c:303
/usr/lib/x86_64-linux-gnu/libX11.so.6(_XEventsQueued+0x5d)[0x7f8ed3bc8a5d]             | 0x...a5d | 0x00007ffff6432a5d in _XEventsQueued (...) at ../../src/xcb_io.c:363
/usr/lib/x86_64-linux-gnu/libX11.so.6(XPending+0x57)[0x7f8ed3bba7b7]                   | 0x...7b7 | 0x00007ffff64247b7 in XPending (...) at ../../src/Pending.c:55
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0(+0x588d5)[0x7f8ed52208d5]                | 0x...8d5 | 0x00007ffff7a8a8d5 in gdk_check_xpending (...) at ./gdk/x11/gdkevents-x11.c:159
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_check+0x1e1)[0x7f8ed4092821] | 0x...821 | 0x00007ffff68fc821 in g_main_context_check (...) at ../../../../glib/gmain.c:3753
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4ddf0)[0x7f8ed4092df0]                   | 0x...df0 | 0x00007ffff68fcdf0 in g_main_context_iterate (...) at ../../../../glib/gmain.c:3917
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0xb2)[0x7f8ed40931d2]       | 0x...1d2 | 0x00007ffff68fd1d2 in g_main_loop_run (...) at ../../../../glib/gmain.c:4116
gimp-2.10(app_run+0x357)[0x559a57cffcb7]                                               | 0x...cb7 | 0x0000555555626cb7 in app_run (...) at app.c:440
gimp-2.10(main+0x395)[0x559a57cff5b5]                                                  | 0x...5b5 | 0x00005555556265b5 in main (...) at main.c:524
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f8ed3ceeb17]                | 0x...b17 | 
gimp-2.10(_start+0x2a)[0x559a57cff73a]                                                 | 0x...73a | 
```














disassemble /m poll_for_event
...
257                             uint64_t request = X_DPY_GET_REQUEST(dpy);

258                             if (XLIB_SEQUENCE_COMPARE(event_sequence, >, request))
   0x00007ffff643259f <poll_for_event+127>:     mov    %rdx,%rcx
   0x00007ffff64325a2 <poll_for_event+130>:     sub    0x98(%rbx),%rcx
   0x00007ffff64325a9 <poll_for_event+137>:     test   %rcx,%rcx
   0x00007ffff64325ac <poll_for_event+140>:     jg     0x7ffff643264a <poll_for_event+298>

259                             {
260                                     throw_thread_fail_assert("Unknown sequence "
   0x00007ffff643269c <poll_for_event+380>:     lea    0x7241d(%rip),%rcx        # 0x7ffff64a4ac0 <__PRETTY_FUNCTION__.15060>
   0x00007ffff64326a3 <poll_for_event+387>:     mov    $0x107,%edx
   0x00007ffff64326a8 <poll_for_event+392>:     lea    0x71fc4(%rip),%rsi        # 0x7ffff64a4673
   0x00007ffff64326af <poll_for_event+399>:     lea    0x72152(%rip),%rdi        # 0x7ffff64a4808
   0x00007ffff64326b6 <poll_for_event+406>:     callq  0x7ffff640bdd0 <__assert_fail at plt>
   0x00007ffff64326bb:  nopl   0x0(%rax,%rax,1)
...
(xcb_io.c)





(gdb) list poll_for_event
233     static xcb_generic_reply_t *poll_for_event(Display *dpy, Bool queued_only)
234     {
235             /* Make sure the Display's sequence numbers are valid */
236             require_socket(dpy);
237
238             /* Precondition: This thread can safely get events from XCB. */
239             assert(dpy->xcb->event_owner == XlibOwnsEventQueue && !dpy->xcb->event_waiter);
240
241             if(!dpy->xcb->next_event) {
242                     if(queued_only)
243                             dpy->xcb->next_event = xcb_poll_for_queued_event(dpy->xcb->connection);
244                     else
245                             dpy->xcb->next_event = xcb_poll_for_event(dpy->xcb->connection);
246             }
247
248             if(dpy->xcb->next_event)
249             {
250                     PendingRequest *req = dpy->xcb->pending_requests;
251                     xcb_generic_event_t *event = dpy->xcb->next_event;
252                     uint64_t event_sequence = X_DPY_GET_LAST_REQUEST_READ(dpy);
253                     widen(&event_sequence, event->full_sequence);
254                     if(!req || XLIB_SEQUENCE_COMPARE(event_sequence, <, req->sequence)
255                             || (event->response_type != X_Error && event_sequence == req->sequence))
256                     {
257                             uint64_t request = X_DPY_GET_REQUEST(dpy);
258                             if (XLIB_SEQUENCE_COMPARE(event_sequence, >, request))
259                             {
260                                     throw_thread_fail_assert("Unknown sequence "
261                                                              "number while "
262                                                              "processing queue",
263                                                     xcb_xlib_threads_sequence_lost);
264                             }
265                             X_DPY_SET_LAST_REQUEST_READ(dpy, event_sequence);
266                             dpy->xcb->next_event = NULL;
267                             return (xcb_generic_reply_t *) event;
268                     }
269             }
270             return NULL;
271     }


More information about the pkg-gnome-maintainers mailing list