On 12/7/11 12:20 PM, Clyde E. Kunkel wrote:
On 12/06/2011 12:35 PM, Adam Jackson wrote:
> On 12/6/11 11:27 AM, Clyde E. Kunkel wrote:
>
>> [ 428.783] Server terminated successfully (0). Closing log file.
>
> This message is there for a reason. It means the X server is terminating
> "normally", ie, because the session has gone away.
>
> Check in ~/.xsession-errors for relevant messages, or in dmesg for
> segfaults.
bunch of gnomes segfaulting causing X server to restart? Why would usb
events cause these problems?
USB device plug -> new X input device -> apps query for new device
capabilities -> something goes wrong -> bang.
[ 471.632799] gnome-settings-[2048]: segfault at 60 ip
00000037e9e1eb39
sp 00007fff41d46320 error 4 in libgdk-3.so.0.304.0[37e9e00000+82000]
[ 471.633389] nm-applet[2195]: segfault at 60 ip 00000037e9e1eb39 sp
00007fffeabda1f0 error 4 in libgdk-3.so.0.304.0[37e9e00000+82000]
[ 471.633464] nautilus[2108]: segfault at 60 ip 00000037e9e1eb39 sp
00007fff99ae75c0 error 4 in libgdk-3.so.0.304.0[37e9e00000+82000]
Notice that the bit in [] at the end is always the same, as well as the
faulting ip address. Given when you said "current rawhide", you're
probably running gtk3-3.3.4-1.fc17, in which case:
% echo 0x1eb39 | eu-addr2line -e
usr/lib/debug/usr/lib64/libgdk-3.so.0.304.0.debug
/usr/src/debug/gtk+-3.3.4/gdk/gdkdevice.c:1325
(Magic number 0x1eb39 derived from the number after 'ip' minus the
similar-looking number inside the square brackets; one's the instruction
pointer, one's the base address of all code.)
So what's there?
% cat -n usr/src/debug/gtk+-3.3.4/gdk/gdkdevice.c | grep -A10 1320
1320 void
1321 _gdk_device_reset_axes (GdkDevice *device)
1322 {
1323 gint i;
1324
1325 for (i = device->axes->len - 1; i >= 0; i--)
1326 g_array_remove_index (device->axes, i);
1327
1328 g_object_notify (G_OBJECT (device), "n-axes");
1329 }
1330
So either device->axes or device is NULL. Would be trivial to paper
over by just checking for that (I think), but it's probable that some
invariant is being violated if we can ever get to that point.
- ajax