Bug#717389: libgtk-3-0: sysmalloc assertion when libxi6 2:1.4.2-1 rather than 2:1.7.1.901-1 (using gnome-terminal)

Andreas Mohr andi at lisas.de
Sat Jul 20 07:04:43 UTC 2013


Package: libgtk-3-0
Version: 3.8.2-3
Severity: important

Dear Maintainer,

   * What led up to the situation?

Tried to launch gnome-terminal

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

Upgraded libxi6 (and/or related dependencies)

   * What was the outcome of this action?

gnome-terminal went from assert-failing to working(?).

   * What outcome did you expect instead?


Debug session (with some dbg symbols installed):

$ gdb gnome-terminal
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 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 "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/gnome-terminal...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/gnome-terminal 
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
gnome-terminal: malloc.c:2369: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.

Program received signal SIGABRT, Aborted.
0xffffe424 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb747a82f in __GI_raise (sig=sig at entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#2  0xb747dcf3 in __GI_abort () at abort.c:90
#3  0xb74c1429 in __malloc_assert (
    assertion=assertion at entry=0xb75b7124 "(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offs"..., file=file at entry=0xb75b2692 "malloc.c", line=line at entry=2369, 
    function=function at entry=0xb75b29af "sysmalloc") at malloc.c:288
#4  0xb74c4162 in sysmalloc (av=0xb75f7440, nb=32) at malloc.c:2366
#5  _int_malloc (av=av at entry=0xb75f7440, bytes=bytes at entry=22) at malloc.c:3718
#6  0xb74c5d2b in __libc_calloc (n=22, elem_size=1) at malloc.c:3169
#7  0xb74358df in XIQueryDevice () from /usr/lib/libXi.so.6
#8  0xb7a59a30 in gdk_x11_device_manager_xi2_constructed ()
   from /usr/lib/i386-linux-gnu/libgdk-3.so.0
#9  0xb78697a2 in g_object_newv ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#10 0xb7869b4b in g_object_new_valist ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#11 0xb7869d90 in g_object_new ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#12 0xb7a5891c in _gdk_x11_device_manager_new ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/i386-linux-gnu/libgdk-3.so.0
#13 0xb7a5d35b in _gdk_x11_display_open ()
    at /build/gtk+3.0-CTfc04/gtk+3.0-3.8.2/./gdk/x11/gdkdisplay-x11.c:1412
#14 0xb7a5b551 in gdk_x11_display_manager_open_display ()
   from /usr/lib/i386-linux-gnu/libgdk-3.so.0
#15 0xb7a38167 in gdk_display_manager_open_display ()
   from /usr/lib/i386-linux-gnu/libgdk-3.so.0
#16 0xb7a374e4 in gdk_display_open ()
   from /usr/lib/i386-linux-gnu/libgdk-3.so.0
#17 0xb7a2f8f5 in gdk_display_open_default_libgtk_only ()
   from /usr/lib/i386-linux-gnu/libgdk-3.so.0
#18 0xb7c3d254 in post_parse_hook () from /usr/lib/i386-linux-gnu/libgtk-3.so.0
#19 0xb77a6570 in g_option_context_parse ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
#20 0x0804e871 in ?? ()
#21 0x0804c007 in ?? ()
#22 0xb74658f5 in __libc_start_main (main=0x804bf30, argc=1, 
    ubp_av=0xbffff5d4, init=0x8054410, fini=0x8054480, rtld_fini=0xb7fee0d0, 
    stack_end=0xbffff5cc) at libc-start.c:260
#23 0x0804c6e5 in ?? ()
(gdb) q
A debugging session is active.

        Inferior 1 [process 12802] will be killed.

Quit anyway? (y or n) y


I then upgraded libxi6 since backtrace strongly suggested an issue there.

dpkg.log of my related install activities (install dbg symbols, upgrade libxi6):

2013-07-20 08:35:34 startup archives unpack
2013-07-20 08:35:46 install libgtk-3-0-dbg:i386 <none> 3.8.2-3
2013-07-20 08:35:46 status half-installed libgtk-3-0-dbg:i386 3.8.2-3
2013-07-20 08:35:56 status unpacked libgtk-3-0-dbg:i386 3.8.2-3
2013-07-20 08:35:56 status unpacked libgtk-3-0-dbg:i386 3.8.2-3
2013-07-20 08:36:02 startup packages configure
2013-07-20 08:36:02 configure libgtk-3-0-dbg:i386 3.8.2-3 <none>
2013-07-20 08:36:02 status unpacked libgtk-3-0-dbg:i386 3.8.2-3
2013-07-20 08:36:02 status half-configured libgtk-3-0-dbg:i386 3.8.2-3
2013-07-20 08:36:02 status installed libgtk-3-0-dbg:i386 3.8.2-3

== TRANSITION LINE: START OF ACTIVITIES which caused gnome-terminal to go from failing to working ==

2013-07-20 08:40:12 startup archives unpack
2013-07-20 08:40:17 upgrade libx11-dev:i386 2:1.5.0-1+deb7u1 2:1.6.0-1
2013-07-20 08:40:18 status half-configured libx11-dev:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:18 status unpacked libx11-dev:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:18 status half-installed libx11-dev:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:19 status half-installed libx11-dev:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:19 status unpacked libx11-dev:i386 2:1.6.0-1
2013-07-20 08:40:19 status unpacked libx11-dev:i386 2:1.6.0-1
2013-07-20 08:40:20 upgrade libx11-6:i386 2:1.5.0-1+deb7u1 2:1.6.0-1
2013-07-20 08:40:20 status half-configured libx11-6:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:20 status unpacked libx11-6:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:20 status half-installed libx11-6:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:21 status half-installed libx11-6:i386 2:1.5.0-1+deb7u1
2013-07-20 08:40:21 status unpacked libx11-6:i386 2:1.6.0-1
2013-07-20 08:40:21 status unpacked libx11-6:i386 2:1.6.0-1
2013-07-20 08:40:22 upgrade libxi-dev:i386 2:1.4.2-1 2:1.7.1.901-1
2013-07-20 08:40:22 status half-configured libxi-dev:i386 2:1.4.2-1
2013-07-20 08:40:22 status unpacked libxi-dev:i386 2:1.4.2-1
2013-07-20 08:40:22 status half-installed libxi-dev:i386 2:1.4.2-1
2013-07-20 08:40:22 status triggers-pending man-db:i386 2.6.3-6
2013-07-20 08:40:23 status half-installed libxi-dev:i386 2:1.4.2-1
2013-07-20 08:40:23 status unpacked libxi-dev:i386 2:1.7.1.901-1
2013-07-20 08:40:23 status unpacked libxi-dev:i386 2:1.7.1.901-1
2013-07-20 08:40:24 upgrade libxi6:i386 2:1.4.2-1 2:1.7.1.901-1
2013-07-20 08:40:24 status half-configured libxi6:i386 2:1.4.2-1
2013-07-20 08:40:24 status unpacked libxi6:i386 2:1.4.2-1
2013-07-20 08:40:24 status half-installed libxi6:i386 2:1.4.2-1
2013-07-20 08:40:24 status half-installed libxi6:i386 2:1.4.2-1
2013-07-20 08:40:25 status unpacked libxi6:i386 2:1.7.1.901-1
2013-07-20 08:40:25 status unpacked libxi6:i386 2:1.7.1.901-1
2013-07-20 08:40:25 install libxi6-dbg:i386 <none> 2:1.7.1.901-1
2013-07-20 08:40:25 status half-installed libxi6-dbg:i386 2:1.7.1.901-1
2013-07-20 08:40:26 status unpacked libxi6-dbg:i386 2:1.7.1.901-1
2013-07-20 08:40:26 status unpacked libxi6-dbg:i386 2:1.7.1.901-1
2013-07-20 08:40:26 trigproc man-db:i386 2.6.3-6 2.6.3-6
2013-07-20 08:40:26 status half-configured man-db:i386 2.6.3-6
2013-07-20 08:41:04 status installed man-db:i386 2.6.3-6
2013-07-20 08:41:07 startup packages configure
2013-07-20 08:41:07 configure libx11-6:i386 2:1.6.0-1 <none>
2013-07-20 08:41:07 status unpacked libx11-6:i386 2:1.6.0-1
2013-07-20 08:41:07 status half-configured libx11-6:i386 2:1.6.0-1
2013-07-20 08:41:10 status installed libx11-6:i386 2:1.6.0-1
2013-07-20 08:41:10 configure libx11-dev:i386 2:1.6.0-1 <none>
2013-07-20 08:41:10 status unpacked libx11-dev:i386 2:1.6.0-1
2013-07-20 08:41:10 status half-configured libx11-dev:i386 2:1.6.0-1
2013-07-20 08:41:10 status installed libx11-dev:i386 2:1.6.0-1
2013-07-20 08:41:10 configure libxi6:i386 2:1.7.1.901-1 <none>
2013-07-20 08:41:10 status unpacked libxi6:i386 2:1.7.1.901-1
2013-07-20 08:41:10 status half-configured libxi6:i386 2:1.7.1.901-1
2013-07-20 08:41:10 status installed libxi6:i386 2:1.7.1.901-1
2013-07-20 08:41:11 configure libxi-dev:i386 2:1.7.1.901-1 <none>
2013-07-20 08:41:11 status unpacked libxi-dev:i386 2:1.7.1.901-1
2013-07-20 08:41:11 status half-configured libxi-dev:i386 2:1.7.1.901-1
2013-07-20 08:41:11 status installed libxi-dev:i386 2:1.7.1.901-1
2013-07-20 08:41:11 configure libxi6-dbg:i386 2:1.7.1.901-1 <none>
2013-07-20 08:41:11 status unpacked libxi6-dbg:i386 2:1.7.1.901-1
2013-07-20 08:41:11 status half-configured libxi6-dbg:i386 2:1.7.1.901-1
2013-07-20 08:41:11 status installed libxi6-dbg:i386 2:1.7.1.901-1


And, well, running gnome-terminal finally started happening to work...

So, perhaps we're missing a proper version Depends in libgtk-3-0,
since it currently has:
Depends: ... libxi6 (>= 2:1.2.99.4) ...
[current setting obviously not sufficient...]
(and the problem quite likely *is* about libxi6 since XIQueryDevice()
was the last backtrace frame to seemingly have caused the issue)

#699531 might be related, since that one is complaining about
_gdk_device_xi2_reset_scroll_valuators segfault,
with merely a libxi6 2:1.6.1-1 installed there
(this additional bug might nail it down to requiring a Depends: indicating
something *newer than* 2:1.6.1-1
and *less-equal* 2:1.7.1.901-1 as installed and working on my machine)

Thanks,

Andreas Mohr


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 3.10.0-rc4+
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libgtk-3-0 depends on:
ii  libatk-bridge2.0-0   2.9.3-1
ii  libatk1.0-0          2.8.0-2
ii  libc6                2.17-3
ii  libcairo-gobject2    1.10.2-6
ii  libcairo2            1.10.2-6
ii  libcolord1           0.1.21-4
ii  libcomerr2           1.41.12-2
ii  libcups2             1.6.2-10
ii  libfontconfig1       2.10.2-2
ii  libfreetype6         2.4.9-1
ii  libgcrypt11          1.4.6-5
ii  libgdk-pixbuf2.0-0   2.28.1-1
ii  libglib2.0-0         2.36.1-2build1
ii  libgnutls26          2.12.20-1
ii  libgssapi-krb5-2     1.10.1+dfsg-1
ii  libgtk-3-common      3.8.2-3
ii  libk5crypto3         1.10.1+dfsg-1
ii  libkrb5-3            1.10.1+dfsg-1
ii  libpango-1.0-0       1.32.5-5+b1
ii  libpangocairo-1.0-0  1.32.5-5+b1
ii  libpangoft2-1.0-0    1.32.5-5+b1
ii  libx11-6             2:1.6.0-1
ii  libxcomposite1       1:0.4.2-1
ii  libxcursor1          1:1.1.10-1
ii  libxdamage1          1:1.1.3-1
ii  libxext6             2:1.3.0-1
ii  libxfixes3           1:4.0.5-1
ii  libxi6               2:1.7.1.901-1
ii  libxinerama1         2:1.1-2
ii  libxrandr2           2:1.3.1-1
ii  multiarch-support    2.17-3
ii  shared-mime-info     0.90-1
ii  zlib1g               1:1.2.3.4.dfsg-3

Versions of packages libgtk-3-0 recommends:
ii  hicolor-icon-theme  0.10-1
ii  libgtk-3-bin        3.8.2-3

Versions of packages libgtk-3-0 suggests:
ii  gvfs             1.10.1-2
ii  librsvg2-common  2.32.1-1

-- debconf-show failed



More information about the pkg-gnome-maintainers mailing list