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

Reply via email to