Bug#904588: supercollider: Stretch i386 Supercollider fails with segmentation fault

Bernhard Übelacker bernhardu at mailbox.org
Tue Jul 31 10:51:49 BST 2018


Hello Knut,

Am 31.07.2018 um 00:37 schrieb Knut Jackowski:
> So not sure how you see it, but I think that this is more a case of
> borking one's own system and not a bug.

I think it is not that easy, this might still be a bug. But yes, when
the configuration gets more and more unique, the more not that widely
used code paths get executed ... especially in this case with
gtk2 less used nowadays.


With the last informations I could inspect the location
given in message #15, but still not reproduce a crash.

So in your scite process it looks like variable display_x11 has an
invalid value. But this could just happen if either _gdk_display_x11_get_type
returns something strange, the allocation by g_object_new fails
or the following cast does something unexpected.

Kind regards,
Bernhard




apt install xserver-xorg sddm openbox xterm systemd-coredump gdb valgrind supercollider dpkg-dev devscripts qt5-style-plugins gtk-theme-switch libqt5widgets5-dbgsym qt5-style-plugins-dbgsym libgtk2.0-0-dbg libglib2.0-0-dbg

apt source libqt5widgets5
apt source qt5-style-plugins
apt source libgtk2.0-0
apt source libglib2.0-0

directory /home/benutzer/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib
directory /home/benutzer/qt5-style-plugins/orig/qtstyleplugins-src-5.0.0+git16.g7aa4764/src/plugins/styles/gtk2
directory /home/benutzer/libgtk2.0-0/orig/gtk+2.0-2.24.31
directory /home/benutzer/libglib2.0-0/glib2.0-2.50.3/gobject


Thread 1 "scide" hit Breakpoint 12, IA__gdk_display_open (display_name=0x0) at ./gdk/x11/gdkdisplay-x11.c:173
173       display_x11->use_xshm = TRUE;
1: x/i $pc
=> 0xaf39259f <IA__gdk_display_open+79>:        movl   $0x1,0xb8(%eax)
(gdb) bt
#0  IA__gdk_display_open (display_name=0x0) at ./gdk/x11/gdkdisplay-x11.c:173
#1  0xaf3603b9 in IA__gdk_display_open_default_libgtk_only () at ./gdk/gdk.c:324
#2  0xaf52a7b5 in IA__gtk_init_check (argv=0x0, argc=0x0) at ./gtk/gtkmain.c:1006
#3  IA__gtk_init (argc=0x0, argv=0x0) at ./gtk/gtkmain.c:1053
#4  0xafa92d37 in QGtkStylePrivate::initGtkWidgets (this=0x5f5048) at qgtkstyle_p.cpp:276
#5  0xafa945ea in QGtk2StylePlugin::create (this=0x5f4660, key=...) at plugin.cpp:51
#6  0xb45c4dc0 in qLoadPlugin<QStyle, QStylePlugin> (key=..., loader=<optimized out>) at ../../include/QtCore/5.7.1/QtCore/private/../../../../../src/corelib/plugin/qfactoryloader_p.h:103
#7  QStyleFactory::create (key=...) at styles/qstylefactory.cpp:158
#8  0xb45510ec in QApplication::style () at kernel/qapplication.cpp:1138
#9  0xb455140d in QApplicationPrivate::initialize (this=0x5c4f98) at kernel/qapplication.cpp:651
#10 0xb4551471 in QApplicationPrivate::init (this=0x5c4f98) at kernel/qapplication.cpp:592
#11 0xb45514f1 in QApplication::QApplication (this=0xbffff63c, argc=@0xbffff6c0: 1, argv=0xbffff754, _internal=329473) at kernel/qapplication.cpp:575
#12 0x0042b119 in ?? ()
#13 0xb34dd286 in __libc_start_main (main=0x42b0d0, argc=1, argv=0xbffff754, init=0x527920 <__libc_csu_init>, fini=0x527980 <__libc_csu_fini>, rtld_fini=0xb7feb070 <_dl_fini>, stack_end=0xbffff74c) at ../csu/libc-start.c:291
#14 0x0042ca1d in _start ()
(gdb)



(gdb) list gdk_display_open
149     GdkDisplay *
150     gdk_display_open (const gchar *display_name)
151     {
152       Display *xdisplay;
153       GdkDisplay *display;
154       GdkDisplayX11 *display_x11;
155       GdkWindowAttr attr;
156       gint argc;
157       gchar *argv[1];
158       const char *sm_client_id;
159       
160       XClassHint *class_hint;
161       gulong pid;
162       gint i;
163       gint ignore;
164       gint maj, min;
165
166       xdisplay = XOpenDisplay (display_name);
167       if (!xdisplay)
168         return NULL;
169       
170       display = g_object_new (GDK_TYPE_DISPLAY_X11, NULL);
171       display_x11 = GDK_DISPLAY_X11 (display);
172
173       display_x11->use_xshm = TRUE;
174       display_x11->xdisplay = xdisplay;
175
(gdb) 

./gdk/x11/gdkdisplay-x11.h:#define GDK_DISPLAY_X11(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DISPLAY_X11, GdkDisplayX11))
./gdk/x11/gdkdisplay-x11.h:#define GDK_TYPE_DISPLAY_X11              (_gdk_display_x11_get_type())



   0xaf39257b <+43>:    call   0xaf35e2b0 <XOpenDisplay at plt>
   0xaf392580 <+48>:    add    $0x10,%esp
   0xaf392583 <+51>:    test   %eax,%eax
   0xaf392585 <+53>:    je     0xaf392c95 <IA__gdk_display_open+1861>
   0xaf39258b <+59>:    mov    %eax,%esi
   0xaf39258d <+61>:    call   0xaf392420 <_gdk_display_x11_get_type>
   0xaf392592 <+66>:    sub    $0x8,%esp
   0xaf392595 <+69>:    push   $0x0
   0xaf392597 <+71>:    push   %eax
   0xaf392598 <+72>:    call   0xaf35e400 <g_object_new at plt>
   0xaf39259d <+77>:    mov    %eax,%edi
=> 0xaf39259f <+79>:    movl   $0x1,0xb8(%eax)



More information about the pkg-multimedia-maintainers mailing list