[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Squeak3D crash while sorting faces/objects (#472)

Nicolas Cellier notifications at github.com
Tue Jan 21 17:36:26 UTC 2020


As reported by Stephane Rollandin

> Hello all,
> 
> After many hours working with the Squeak3D plugin, I can confirm that it
> is much more stable than before. There are still occasional crashes
> though, and I finally managed (by chance) to have a reproducible case.
> 
> This happens with 32-bit VMs (Windows for me), including the latest in
> trunk, both in 5.2 and 5.3 images.
> 
> To see it, use the image I uploaded at
> http://www.zogotounga.net/swap/Guardians-5.3.image.zip
> 
> It should crash right at start up, with a dump.

This happens here and is yet another error:

```
(lldb) cont
Process 55258 resuming
../../platforms/Cross/plugins/Squeak3D/b3dInit.c:320:3: runtime error: member access within null pointer of type 'stackEntry' (aka 'struct stackEntry')
Process 55258 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = Null pointer use
    frame #0: 0x00ae1af0 libclang_rt.ubsan_osx_dynamic.dylib`__ubsan_on_report
libclang_rt.ubsan_osx_dynamic.dylib`__ubsan_on_report:
->  0xae1af0 <+0>: pushl  %ebp
    0xae1af1 <+1>: movl   %esp, %ebp
    0xae1af3 <+3>: popl   %ebp
    0xae1af4 <+4>: retl   
Target 0: (Squeak) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = Null pointer use
  * frame #0: 0x00ae1af0 libclang_rt.ubsan_osx_dynamic.dylib`__ubsan_on_report
    frame #1: 0x00adb865 libclang_rt.ubsan_osx_dynamic.dylib`__ubsan::Diag::~Diag() + 229
    frame #2: 0x00add1b7 libclang_rt.ubsan_osx_dynamic.dylib`handleTypeMismatchImpl(__ubsan::TypeMismatchData*, unsigned long, __ubsan::ReportOptions) + 711
    frame #3: 0x00adcedf libclang_rt.ubsan_osx_dynamic.dylib`__ubsan_handle_type_mismatch_v1 + 63
    frame #4: 0x0da4c532 Squeak3D`b3dQuickSortInitialFaces(obj=0x09ba6980, i=0, j=0) at b3dInit.c:320:3
    frame #5: 0x0da5b5b6 Squeak3D`b3dAddPolygonObject(objBase=0x09ba6980, objLength=356, objFlags=256, textureIndex=0, vtxPointer=0x09ba2df8, nVertices=3, vp=0x0dab8f34) at b3dInit.c:624:5
    frame #6: 0x0da10330 Squeak3D`b3dInitPrimitiveObject at Squeak3D.c:865:7
    frame #7: 0x000c3e0a Squeak`primitiveExternalCall at gcc3x-cointerp.c:76053:3
    frame #8: 0x000326f1 Squeak`interpret at gcc3x-cointerp.c:6199:7
    frame #9: 0x000777f5 Squeak`enterSmalltalkExecutiveImplementation at gcc3x-cointerp.c:16111:2
    frame #10: 0x00002693 Squeak`interpret at gcc3x-cointerp.c:2751:3
    frame #11: 0x0037ba67 Squeak`-[sqSqueakMainApplication runSqueak](self=0x01542bd0, _cmd="runSqueak") at sqSqueakMainApplication.m:201:2
    frame #12: 0x952a8778 Foundation`__NSFirePerformWithOrder + 413
    frame #13: 0x938a5a6a CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 22
    frame #14: 0x938a5993 CoreFoundation`__CFRunLoopDoObservers + 459
    frame #15: 0x9384c972 CoreFoundation`__CFRunLoopRun + 2365
    frame #16: 0x9384bd38 CoreFoundation`CFRunLoopRunSpecific + 584
    frame #17: 0x93864afd CoreFoundation`CFRunLoopRunInMode + 82
    frame #18: 0x92dea271 HIToolbox`RunCurrentEventLoopInMode + 323
    frame #19: 0x92de9e3c HIToolbox`ReceiveNextEventCommon + 438
    frame #20: 0x92de9c67 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
    frame #21: 0x914aaa89 AppKit`_DPSNextEvent + 1345
    frame #22: 0x914a959f AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 957
    frame #23: 0x914a91da AppKit`-[NSApplication(NSEvent) nextEventMatchingMask:untilDate:inMode:dequeue:] + 108
    frame #24: 0x914a387b AppKit`-[NSApplication run] + 751
    frame #25: 0x9149368b AppKit`NSApplicationMain + 1140
    frame #26: 0x00372d7d Squeak`main(argc=2, argv=0xbffff9b0, envp=0xbffff9bc) at main.m:74:12
    frame #27: 0xa7c15051 libdyld.dylib`start + 1
(lldb) cont
Process 55258 resuming
../../platforms/Cross/plugins/Squeak3D/b3dInit.c:320:3: runtime error: store to null pointer of type 'int'
Process 55258 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0da4c53e Squeak3D`b3dQuickSortInitialFaces(obj=0x09ba6980, i=0, j=0) at b3dInit.c:320:3
   317 	
   318 	  /* Keep us enough headroom */
   319 	  INIT((j-i)*2);
-> 320 	  PUSH(i,j);
   321 	  while(stackPointer > 0) {
   322 	    POP(i, j);
   323 	    n = j + 1 - i;

```


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/472
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20200121/84c4e5c9/attachment.html>


More information about the Vm-dev mailing list