Can anyone please advise about the following problem? It occurs with
GNUstep on a 64-bit machine, but does not occur with a similar set-up
on a 32-bit machine. Riccardo and I have been working on it, but
without success so far.
The problems occur intermittently, but quite frequently, in GWorkspace
when performing file operations such as duplicate, move, delete etc.
With the latest tarball versions of the GNUstep core libraries, these
operations often cause a hang-up that can only be cleared by killing
all instances of GWorkspace and ddbd, then restarting GWorkspace.
Usually the hang-up occurs after an 'index out of range' NSException.
The attached gdb logs were obtained using the tarball versions. The
point of failure appears to be deep within GNUstep, though of course
the original error could be higher up.
With GNUstep core libraries built from the current SVN, the index
failures still occur - any file operation is almost guaranteed to
trigger them - but are not generally followed by a hang-up.
Neither the index out of range messages nor the hangups occur when
running on my 32-bit machine. However Riccardo reports a hang on an
object move on 32-bit.
My 64-bit and 32-bit systems have an almost identical openSUSE 12.2
setup. This includes gcc 4.7 and gcc's libobjc. Possibly significant
differences are:
- 32-bit v 64-bit packages;
- the 32-bit system is set up as a dual-boot with openSUSE
and Windows, whereas the 64-bit system is set up as a VM
under VMware under Windows.
CPU details of the two machines are attached.
--
Richard Stonehouse
Richard@northwest:~> gdb GWorkspace
GNU gdb (GDB) SUSE (7.4.50.20120603-2.1.2)
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 "x86_64-suse-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/GWorkspace...done.
(gdb) [NSException raise]
Undefined command: "". Try "help".
(gdb) b [NSException raise]
Function "[NSException raise]" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 ([NSException raise]) pending.
(gdb) run
Starting program: /usr/bin/GWorkspace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
2012-10-16 01:56:36.703 GWorkspace[2825] Volumes ({dir = swap; name =
"/dev/sda1"; type = swap; }, {dir = "/"; name = "/dev/sda2"; type = ext4; },
{dir = "/proc"; name = proc; type = proc; }, {dir = "/sys"; name = sysfs; type
= sysfs; }, {dir = "/sys/kernel/debug"; name = debugfs; type = debugfs; }, {dir
= "/proc/bus/usb"; name = usbfs; type = usbfs; }, {dir = "/dev/pts"; name =
devpts; type = devpts; }, {dir = "/mnt/dvdram"; name = "/dev/sr0"; type =
iso9660; }, {dir = "/mnt/nfs"; name = "southeast:/home/Richard"; type = nfs; })
2012-10-16 01:56:36.979 GWorkspace[2825] prfsname {"fsn_info_type" = 0;
geometry = "1074 -6 450 575 0 0 1600 900 "; iconposition = 5; iconsize = 48;
labeltxtsize = 12; lastselection = ("/home/Richard/.config"); shelfdicts =
({index = 0; paths = ("/home/Richard"); }); shelfheight = 77; singlenode = 0;
spatial = 0; viewtype = Browser; }
2012-10-16 01:56:36.980 GWorkspace[2825] viewtype: Browser
2012-10-16 01:56:36.981 GWorkspace[2825] height: 77
2012-10-16 01:56:36.982 GWorkspace[2825] geometry: 1074 -6 450 575 0 0 1600
900
Detaching after fork from child process 2829.
2012-10-16 01:56:37.303 ddbd[2829] ddbd started
[New Thread 0x7fffe821f700 (LWP 2834)]
[Switching to Thread 0x7fffe821f700 (LWP 2834)]
2012-10-16 01:56:54.144 ddbd[2829] Problem posting notification: <NSException:
0x7fffe80038d8> NAME:NSRangeException REASON:Index -1 is out of range 1 (in
'objectAtIndex:') INFO:{Array = ("<NSRunLoop: 0x7737a8>"); Count = 1; Index =
4294967295; }
Breakpoint 1, -[NSException raise] (self=0x7fffe000bfb8,
_cmd=0x7ffff6d55d20 <_OBJC_SELECTOR_TABLE+64>) at NSException.m:956
956 if (_reserved == 0)
Missing separate debuginfos, use: zypper install
GWorkspace-G1-debuginfo-0.9.1.35696-1220.debug.1.x86_64
(gdb) bt
#0 -[NSException raise] (self=0x7fffe000bfb8,
_cmd=0x7ffff6d55d20 <_OBJC_SELECTOR_TABLE+64>) at NSException.m:956
#1 0x00007ffff67ea2ea in -[GSArray _raiseRangeExceptionWithIndex:from:] (
self=0x21548d8, _cmd=0x7ffff6d55e70 <_OBJC_SELECTOR_TABLE+400>,
index=4294967295, sel=0x7ffff6d883a0 <_OBJC_SELECTOR_TABLE+736>) at
GSArray.m:97
#2 0x00007ffff67ead1a in -[GSArray objectAtIndex:] (self=0x21548d8,
_cmd=0x7ffff6d883a0 <_OBJC_SELECTOR_TABLE+736>, index=4294967295)
at GSArray.m:331
#3 0x00007ffff687122d in -[NSConnection removeRunLoop:] (self=0x1fbd818,
_cmd=0x7ffff6d885b0 <_OBJC_SELECTOR_TABLE+1264>, loop=0x7fffe00011f8)
at NSConnection.m:1597
#4 0x00007ffff687c7d4 in +[NSConnection(Private) _threadWillExit:] (
self=0x7ffff6d87a40 <_OBJC_Class_NSConnection>,
_cmd=0x7ffff6d882f0 <_OBJC_SELECTOR_TABLE+560>, notification=0x7fffe0002338)
at NSConnection.m:4020
#5 0x00007ffff68f478b in -[NSNotificationCenter _postAndRelease:]
(self=0x852ce8,
_cmd=0x7ffff6dba9f0 <_OBJC_SELECTOR_TABLE+400>, notification=0x7fffe0002338)
at NSNotificationCenter.m:1223
#6 0x00007ffff68f4a37 in -[NSNotificationCenter
postNotificationName:object:userInfo:] (self=0x852ce8, _cmd=0x7ffff6df1860
<_OBJC_SELECTOR_TABLE+256>, name=0x87e458,
object=0x1583908, info=0x0) at NSNotificationCenter.m:1282
#7 0x00007ffff696e5de in unregisterActiveThread (thread=0x1583908) at
NSThread.m:461
#8 0x00007ffff696e874 in +[NSThread exit] (
self=0x7ffff6df16e0 <_OBJC_Class_NSThread>,
_cmd=0x7ffff6df1940 <_OBJC_SELECTOR_TABLE+480>) at NSThread.m:523
#9 0x00007ffff696f25c in nsthreadLauncher (thread=0x1583908) at NSThread.m:809
#10 0x00007ffff5d58e0e in start_thread () from /lib64/libpthread.so.0
#11 0x00007ffff5a902bd in clone () from /lib64/libc.so.6
Richard@northwest:~> gdb GWorkspace
GNU gdb (GDB) SUSE (7.4.50.20120603-2.1.2)
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 "x86_64-suse-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/GWorkspace...done.
(gdb) b [NSException raise]
Function "[NSException raise]" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 ([NSException raise]) pending.
(gdb) run
Starting program: /usr/bin/GWorkspace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
2012-10-16 01:43:21.202 GWorkspace[26644] Volumes ({dir = swap; name =
"/dev/sda1"; type = swap; }, {dir = "/"; name = "/dev/sda2"; type = ext4; },
{dir = "/proc"; name = proc; type = proc; }, {dir = "/sys"; name = sysfs; type
= sysfs; }, {dir = "/sys/kernel/debug"; name = debugfs; type = debugfs; }, {dir
= "/proc/bus/usb"; name = usbfs; type = usbfs; }, {dir = "/dev/pts"; name =
devpts; type = devpts; }, {dir = "/mnt/dvdram"; name = "/dev/sr0"; type =
iso9660; }, {dir = "/mnt/nfs"; name = "southeast:/home/Richard"; type = nfs; })
2012-10-16 01:43:21.504 GWorkspace[26644] prfsname {"fsn_info_type" = 0;
geometry = "1074 -6 450 575 0 0 1600 900 "; iconposition = 5; iconsize = 48;
labeltxtsize = 12; lastselection = ("/home/Richard/.bash_history"); shelfdicts
= ({index = 0; paths = ("/home/Richard"); }); shelfheight = 77; singlenode = 0;
spatial = 0; viewtype = Browser; }
2012-10-16 01:43:21.506 GWorkspace[26644] viewtype: Browser
2012-10-16 01:43:21.506 GWorkspace[26644] height: 77
2012-10-16 01:43:21.507 GWorkspace[26644] geometry: 1074 -6 450 575 0 0 1600
900
Detaching after fork from child process 26647.
2012-10-16 01:43:21.882 ddbd[26647] ddbd started
[New Thread 0x7fffe81e2700 (LWP 26653)]
[Switching to Thread 0x7fffe81e2700 (LWP 26653)]
Breakpoint 1, -[NSException raise] (self=0x7fffe00070c8,
2012-10-16 01:43:43.215 ddbd[26647] Problem posting notification: <NSException:
0x7fffe80038d8> NAME:NSRangeException REASON:Index -1 is out of range 1 (in
'objectAtIndex:') INFO:{Array = ("<NSRunLoop: 0x777a58>"); Count = 1; Index =
4294967295; }
_cmd=0x7ffff6d55d20 <_OBJC_SELECTOR_TABLE+64>) at NSException.m:956
956 if (_reserved == 0)
Missing separate debuginfos, use: zypper install
GWorkspace-G1-debuginfo-0.9.1.35696-1220.debug.1.x86_64
(gdb) bt
#0 -[NSException raise] (self=0x7fffe00070c8,
_cmd=0x7ffff6d55d20 <_OBJC_SELECTOR_TABLE+64>) at NSException.m:956
#1 0x00007ffff67ea2ea in -[GSArray _raiseRangeExceptionWithIndex:from:] (
self=0x217ee18, _cmd=0x7ffff6d55e70 <_OBJC_SELECTOR_TABLE+400>,
index=4294967295, sel=0x7ffff6d883a0 <_OBJC_SELECTOR_TABLE+736>) at
GSArray.m:97
#2 0x00007ffff67ead1a in -[GSArray objectAtIndex:] (self=0x217ee18,
_cmd=0x7ffff6d883a0 <_OBJC_SELECTOR_TABLE+736>, index=4294967295)
at GSArray.m:331
#3 0x00007ffff687122d in -[NSConnection removeRunLoop:] (self=0x217e588,
_cmd=0x7ffff6d885b0 <_OBJC_SELECTOR_TABLE+1264>, loop=0x7fffe00011f8)
at NSConnection.m:1597
#4 0x00007ffff687c7d4 in +[NSConnection(Private) _threadWillExit:] (
self=0x7ffff6d87a40 <_OBJC_Class_NSConnection>,
_cmd=0x7ffff6d882f0 <_OBJC_SELECTOR_TABLE+560>, notification=0x7fffe0002338)
at NSConnection.m:4020
#5 0x00007ffff68f478b in -[NSNotificationCenter _postAndRelease:]
(self=0x8540d8,
_cmd=0x7ffff6dba9f0 <_OBJC_SELECTOR_TABLE+400>, notification=0x7fffe0002338)
at NSNotificationCenter.m:1223
#6 0x00007ffff68f4a37 in -[NSNotificationCenter
postNotificationName:object:userInfo:] (self=0x8540d8, _cmd=0x7ffff6df1860
<_OBJC_SELECTOR_TABLE+256>, name=0x87f848,
object=0x10958e8, info=0x0) at NSNotificationCenter.m:1282
#7 0x00007ffff696e5de in unregisterActiveThread (thread=0x10958e8) at
NSThread.m:461
#8 0x00007ffff696e874 in +[NSThread exit] (
self=0x7ffff6df16e0 <_OBJC_Class_NSThread>,
_cmd=0x7ffff6df1940 <_OBJC_SELECTOR_TABLE+480>) at NSThread.m:523
#9 0x00007ffff696f25c in nsthreadLauncher (thread=0x10958e8) at NSThread.m:809
#10 0x00007ffff5d40e0e in start_thread () from /lib64/libpthread.so.0
#11 0x00007ffff5a782bd in clone () from /lib64/libc.so.6
Richard@northwest:~> gdb GWorkspace
GNU gdb (GDB) SUSE (7.4.50.20120603-2.1.2)
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 "x86_64-suse-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/GWorkspace...done.
(gdb) b [NSException raise]
Function "[NSException raise]" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 ([NSException raise]) pending.
(gdb) run
Starting program: /usr/bin/GWorkspace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
2012-10-16 02:06:21.561 GWorkspace[2762] Volumes ({dir = swap; name =
"/dev/sda1"; type = swap; }, {dir = "/"; name = "/dev/sda2"; type = ext4; },
{dir = "/proc"; name = proc; type = proc; }, {dir = "/sys"; name = sysfs; type
= sysfs; }, {dir = "/sys/kernel/debug"; name = debugfs; type = debugfs; }, {dir
= "/proc/bus/usb"; name = usbfs; type = usbfs; }, {dir = "/dev/pts"; name =
devpts; type = devpts; }, {dir = "/mnt/dvdram"; name = "/dev/sr0"; type =
iso9660; }, {dir = "/mnt/nfs"; name = "southeast:/home/Richard"; type = nfs; })
2012-10-16 02:06:21.835 GWorkspace[2762] prfsname {"fsn_info_type" = 0;
geometry = "537 -4 450 575 0 0 800 600 "; iconposition = 5; iconsize = 48;
labeltxtsize = 12; lastselection = ("/home/Richard/.config"); shelfdicts =
({index = 0; paths = ("/home/Richard"); }); shelfheight = 77; singlenode = 0;
spatial = 0; viewtype = Browser; }
2012-10-16 02:06:21.836 GWorkspace[2762] viewtype: Browser
2012-10-16 02:06:21.836 GWorkspace[2762] height: 77
2012-10-16 02:06:21.836 GWorkspace[2762] geometry: 537 -4 450 575 0 0 800 600
Detaching after fork from child process 2766.
2012-10-16 02:06:22.150 ddbd[2766] ddbd started
[New Thread 0x7fffe821e700 (LWP 2787)]
[Switching to Thread 0x7fffe821e700 (LWP 2787)]
2012-10-16 02:06:58.288 ddbd[2766] Problem posting notification: <NSException:
0x7fffe8004e68> NAME:NSRangeException REASON:Index -1 is out of range 1 (in
'objectAtIndex:') INFO:{Array = ("<NSRunLoop: 0x7737a8>"); Count = 1; Index =
4294967295; }
Breakpoint 1, -[NSException raise] (self=0x7fffe00058e8,
_cmd=0x7ffff6d55d20 <_OBJC_SELECTOR_TABLE+64>) at NSException.m:956
956 if (_reserved == 0)
Missing separate debuginfos, use: zypper install
GWorkspace-G1-debuginfo-0.9.1.35696-1220.debug.1.x86_64
(gdb) bt
#0 -[NSException raise] (self=0x7fffe00058e8,
_cmd=0x7ffff6d55d20 <_OBJC_SELECTOR_TABLE+64>) at NSException.m:956
#1 0x00007ffff67ea2ea in -[GSArray _raiseRangeExceptionWithIndex:from:] (
self=0x215b5d8, _cmd=0x7ffff6d55e70 <_OBJC_SELECTOR_TABLE+400>,
index=4294967295, sel=0x7ffff6d883a0 <_OBJC_SELECTOR_TABLE+736>)
at GSArray.m:97
#2 0x00007ffff67ead1a in -[GSArray objectAtIndex:] (self=0x215b5d8,
_cmd=0x7ffff6d883a0 <_OBJC_SELECTOR_TABLE+736>, index=4294967295)
at GSArray.m:331
#3 0x00007ffff687122d in -[NSConnection removeRunLoop:] (self=0x2178dc8,
_cmd=0x7ffff6d885b0 <_OBJC_SELECTOR_TABLE+1264>, loop=0x7fffe00011f8)
at NSConnection.m:1597
#4 0x00007ffff687c7d4 in +[NSConnection(Private) _threadWillExit:] (
self=0x7ffff6d87a40 <_OBJC_Class_NSConnection>,
_cmd=0x7ffff6d882f0 <_OBJC_SELECTOR_TABLE+560>, notification=0x7fffe0002338)
at NSConnection.m:4020
#5 0x00007ffff68f478b in -[NSNotificationCenter _postAndRelease:] (
self=0x852ce8, _cmd=0x7ffff6dba9f0 <_OBJC_SELECTOR_TABLE+400>,
notification=0x7fffe0002338) at NSNotificationCenter.m:1223
#6 0x00007ffff68f4a37 in -[NSNotificationCenter
postNotificationName:object:userInfo:] (self=0x852ce8, _cmd=0x7ffff6df1860
<_OBJC_SELECTOR_TABLE+256>,
name=0x87e458, object=0xff4738, info=0x0) at NSNotificationCenter.m:1282
#7 0x00007ffff696e5de in unregisterActiveThread (thread=0xff4738)
at NSThread.m:461
#8 0x00007ffff696e874 in +[NSThread exit] (
self=0x7ffff6df16e0 <_OBJC_Class_NSThread>,
_cmd=0x7ffff6df1940 <_OBJC_SELECTOR_TABLE+480>) at NSThread.m:523
#9 0x00007ffff696f25c in nsthreadLauncher (thread=0xff4738) at NSThread.m:809
#10 0x00007ffff5d58e0e in start_thread () from /lib64/libpthread.so.0
#11 0x00007ffff5a902bd in clone () from /lib64/libc.so.6
/proc/cpuinfo for the 32-bit machine is:
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 6
model name : AMD Athlon(TM) XP1700+
stepping : 2
cpu MHz : 1109.855
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca
cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow up
bogomips : 2219.71
clflush size : 32
cache_alignment : 32
address sizes : 34 bits physical, 32 bits virtual
power management: ts
/proc/cpuinfo for the 64-bit machine is:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
stepping : 7
microcode : 0x28
cpu MHz : 3392.359
cache size : 8192 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm
constant_tsc up arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc
aperfmperf pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave
avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm
bogomips : 6784.71
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep