[M3devel] crash in m3bundle on SPARC64_OPENBSD

Jay K jay.krell at cornell.edu
Mon Jul 27 06:16:15 CEST 2009


== package /dev2/cm3/m3-sys/cm3ide ==

 +++ /cm3/bin/cm3  -build -DROOT=/dev2/cm3 -DCM3_VERSION_TEXT=d5.8.2 -DCM3_VERSI
ON_NUMBER=050802 -DCM3_LAST_CHANGED=2009-07-15 +++
--- building in SPARC64_OPENBSD ---
ignoring ../src/m3overrides
/cm3/bin/m3bundle -name CM3_IDE_Bundle -F/tmp/qk

***
*** runtime error:
***    Segmentation violation - possible attempt to dereference NIL
***    pc = 0x134afc = NoteStackLocations + 0x2c in ../src/runtime/common/RTColl
ector.m3
***
Abort trap (core dumped)
new source -> compiling Buf.i3
 
$ cd /dev2/cm3/m3-sys/cm3ide
$ rm -rf SPARC64_OPENBSD/
$ /cm3/bin/m3bundle -name CM3_IDE_Bundle -F/tmp/qk
 

***
*** runtime error:
***    Segmentation violation - possible attempt to dereference NIL
***    pc = 0x134afc = NoteStackLocations + 0x2c in ../src/runtime/common/RTColl
ector.m3
***
Abort trap (core dumped)

$ gdb --args /cm3/bin/m3bundle -name CM3_IDE_Bundle -F/tmp/qk

GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc64-unknown-openbsd4.3"...
(gdb) run
Starting program: /cm3/bin/m3bundle -name CM3_IDE_Bundle -F/tmp/qk
Program received signal SIGSEGV, Segmentation fault.
0x0000000000134afc in RTCollector__NoteStackLocations (
    M3_AJWxb1_start=0xfffffffffffcbe, M3_AJWxb1_stop=0x61daebea047a30af)
    at ../src/runtime/common/RTCollector.m3:525
525           WITH page = AddressToPage(fp^) DO
(gdb) disas
Dump of assembler code for function RTCollector__NoteStackLocations:
0x0000000000134ad0 : save  %sp, -224, %sp
0x0000000000134ad4 : stx  %i0, [ %fp + 0x87f
]
0x0000000000134ad8 : stx  %i1, [ %fp + 0x887
]
0x0000000000134adc :        ldx  [ %fp + 0x8
7f ], %g1
0x0000000000134ae0 :        stx  %g1, [ %fp
+ 0x7df ]
0x0000000000134ae4 :        ldx  [ %fp + 0x8
87 ], %g1
0x0000000000134ae8 :        add  %g1, -8, %g
1
0x0000000000134aec :        stx  %g1, [ %fp
+ 0x887 ]
0x0000000000134af0 :        b  %xcc, 0x134ba
c 
0x0000000000134af4 :        nop
0x0000000000134af8 :        ldx  [ %fp + 0x7
df ], %g1
0x0000000000134afc :        ldx  [ %g1 ], %g    <<< here
1
0x0000000000134b00 :        mov  %g1, %o0
---Type  to continue, or q  to quit---q
Quit
(gdb) p $g1
$1 = 0   <<< null deref 
(gdb) bt
#0  0x0000000000134afc in RTCollector__NoteStackLocations (
    M3_AJWxb1_start=0xfffffffffffcbe, M3_AJWxb1_stop=0x61daebea047a30af)
    at ../src/runtime/common/RTCollector.m3:525
#1  0x000000000015a44c in ThreadPThread__ProcessMe (
    M3_CgoaiZ_me=0xd800000000000000, M3_Ad3xEV_p=0x58daebea047a3667)
    at ../src/thread/PTHREAD/ThreadPThread.m3:1014
#2  0x0000000000159e48 in ThreadF__ProcessStacks (
    M3_Ad3xEV_p=0x10000000004d8c29)
    at ../src/thread/PTHREAD/ThreadPThread.m3:938
#3  0x000000000013680c in RTCollector__CollectSomeInStateZero ()
    at ../src/runtime/common/RTCollector.m3:821
#4  0x0000000000135ee4 in RTCollector__CollectSome ()
    at ../src/runtime/common/RTCollector.m3:721
#5  0x0000000000135600 in RTCollector__CollectEnough (
    M3_AicXUJ_allocator=56 '8') at ../src/runtime/common/RTCollector.m3:653
#6  0x000000000013986c in RTCollector__LongAlloc (
    M3_Cwb5VA_dataSize=11889503016258108627,
    M3_Cwb5VA_dataAlignment=12754194144713243859,
    M3_D000bG_pool=0xc300000000000000)
    at ../src/runtime/common/RTCollector.m3:1438
#7  0x0000000000139644 in RTHeapRep__AllocTraced (M3_Cwb5VA_dataSize=0,
    M3_Cwb5VA_dataAlignment=0, M3_D000bG_pool=0x0)
    at ../src/runtime/common/RTCollector.m3:1400
#8  0x0000000000130578 in RTAllocator__GetTracedObj (M3_Eic7CK_def=0x0)
---Type  to continue, or q  to quit---
    at ../src/runtime/common/RTAllocator.m3:222
#9  0x000000000012fc50 in RTHooks__AllocateTracedObj (M3_AJWxb1_defn=0x0)
    at ../src/runtime/common/RTAllocator.m3:120
#10 0x0000000000156c8c in ThreadPThread__CreateT (M3_CgoaiZ_act=0x0)
    at ../src/thread/PTHREAD/ThreadPThread.m3:497
#11 0x000000000015bb5c in ThreadF__Init ()
    at ../src/thread/PTHREAD/ThreadPThread.m3:1377
#12 0x000000000014392c in RTLinker__InitRuntime (
    M3_AcxOUs_p_argc=7455543629306877523,
    M3_AJWxb1_p_argv=0x5f5253483d737368, M3_AJWxb1_p_envp=0x5353485f545459,
    M3_AJWxb1_p_instance=0x3d2f6465762f7474)
    at ../src/runtime/common/RTLinker.m3:59
#13 0x00000000001028e4 in main (argc=0, argv=0x0, envp=0x0) at _m3main.mc:3
 
 
It happens every time.
 
 
wild guess would be that..SPARC platforms without stack walker don't work?
No, SPARC32_LINUX does better.
 

That no SPARC64 platform works? Could be.
We'll see in SPARC64_SOLARIS, SPARC64_LINUX /eventually/.

 
I'll try to let this go for now, it being SPARC64_OPENBSD..
 
 
This is also two releases behind.
 
 
$ uname -a
OpenBSD jay-sun2.jkhome 4.3 GENERIC#1555 sparc64
 
 
current OpenBSD release is 4.5.
 

 - Jay


More information about the M3devel mailing list