This happens with 1d9c8bcfd3214c52e8a449840b2cd1c448b33d18 on MacOS 64bit. The Assert VM doesn't see to trigger on any asserts. The GC seems to follow an object ending in a NULL OOP? The image includes non opensource code but it is crashing reliable on start-up.
Smalltalk backtrace ``` Smalltalk stack dump: 0x7ffee269dbb8 I SmalltalkImage>garbageCollect 0x11bcef9a8: a(n) SmalltalkImage 0x7ffee269dc00 I ByteArray class(Behavior)>handleFailingBasicNew: 0x11bce0d78: a(n) ByteArray class 0x7ffee269dc40 M ByteArray class(Behavior)>basicNew: 0x11bce0d78: a(n) ByteArray class 0x7ffee269dc78 M ByteArray class(Behavior)>new: 0x11bce0d78: a(n) ByteArray class 0x7ffee269dcb0 M ByteArray class(SequenceableCollection class)>ofSize: 0x11bce0d78: a(n) ByteArray class 0x7ffee269dcf8 M ByteArray(SequenceableCollection)>grownBy: 0x13b3027d8: a(n) ByteArray 0x7ffee269dd40 M WriteStream>growTo: 0x11b543e60: a(n) WriteStream 0x7ffee269dd80 M WriteStream>nextPutAll: 0x11b543e60: a(n) WriteStream 0x7ffee269ddb8 M WriteStream(Stream)>next:putAll:startingAt: 0x11b543e60: a(n) WriteStream 0x7ffee269de10 M WriteStream>next:putAll:startingAt: 0x11b543e60: a(n) WriteStream 0x7ffee269de58 M [] in ZnBufferedReadStream>upToEnd 0x11b553e98: a(n) ZnBufferedReadStream 0x7ffee269de98 M ByteArray class(SequenceableCollection class)>new:streamContents: 0x11bce0d78: a(n) ByteArray class 0x7ffee269ded8 M ByteArray class(SequenceableCollection class)>streamContents: 0x11bce0d78: a(n) ByteArray class 0x7ffee269df20 I ZnBufferedReadStream>upToEnd 0x11b553e98: a(n) ZnBufferedReadStream 0x7ffee269df60 I ZnBufferedReadStream>contents 0x11b553e98: a(n) ZnBufferedReadStream 0x7ffee269df90 M [] in LucidaGrandeRegular class>fontContents 0x11c4246f8: a(n) LucidaGrandeRegular class 0x7ffee269dfd8 M [] in FileReference(AbstractFileReference)>binaryReadStreamDo: 0x11b553fb8: a(n) FileReference 0x7ffee269e018 M BlockClosure>ensure: 0x11b553fd0: a(n) BlockClosure 0x7ffee269e068 I FileReference(AbstractFileReference)>binaryReadStreamDo: 0x11b553fb8: a(n) FileReference 0x7ffee269e0b0 I LucidaGrandeRegular class>fontContents 0x11c4246f8: a(n) LucidaGrandeRegular class 0x7ffee269e0f8 I LucidaGrandeRegular class(EmbeddedFreeTypeFontFontDescription class)>installFontsIn: 0x11c4246f8: a(n) LucidaGrandeRegular class 0x7ffee269e138 M [] in EmbeddedFreeTypeFontFontDescription class>installAllFontsIn: 0x11c422d60: a(n) EmbeddedFreeTypeFontFontDescription class 0x7ffee269aca0 M OrderedCollection>do: 0x11b543700: a(n) OrderedCollection 0x7ffee269ace8 I EmbeddedFreeTypeFontFontDescription class>installAllFontsIn: 0x11c422d60: a(n) EmbeddedFreeTypeFontFontDescription class 0x7ffee269ad30 I EmbeddedFreeTypeFontInstaller>installAllFontsIn: 0x11ca636f0: a(n) EmbeddedFreeTypeFontInstaller 0x7ffee269ad68 M [] in FreeTypeFontProvider>updateEmbeddedFreeTypeFonts 0x11ca63590: a(n) FreeTypeFontProvider 0x7ffee269adb0 M OrderedCollection>do: 0x11cae4688: a(n) OrderedCollection 0x7ffee269adf8 I FreeTypeFontProvider>updateEmbeddedFreeTypeFonts 0x11ca63590: a(n) FreeTypeFontProvider 0x7ffee269ae38 I FreeTypeSettings class>updateFreeType 0x11c41bf60: a(n) FreeTypeSettings class 0x7ffee269ae78 I FreeTypeSettings class>startUp: 0x11c41bf60: a(n) FreeTypeSettings class 0x7ffee269aeb0 M ClassSessionHandler>startup: 0x11ca66cc8: a(n) ClassSessionHandler 0x7ffee269aef0 M [] in WorkingSession>runStartup: 0x11b543000: a(n) WorkingSession 0x7ffee269af38 M [] in WorkingSession>runList:do: 0x11b543000: a(n) WorkingSession 0x7ffee269af68 M BlockClosure>on:do: 0x11b5439b8: a(n) BlockClosure 0x7ffee269afb0 M [] in WorkingSession>runList:do: 0x11b543000: a(n) WorkingSession 0x7ffee269aff8 M Array(SequenceableCollection)>do: 0x11b543ae8: a(n) Array 0x7ffee269b040 I WorkingSession>runList:do: 0x11b543000: a(n) WorkingSession 0x7ffee269b090 I WorkingSession>runStartup: 0x11b543000: a(n) WorkingSession 0x7ffee269b0d8 I WorkingSession>start: 0x11b543000: a(n) WorkingSession 0x7ffee269b130 I SessionManager>launchSnapshot:andQuit: 0x11bd57848: a(n) SessionManager 0x13611ef38 s [] in SessionManager>snapshot:andQuit: 0x136135618 s [] in BlockClosure>newProcess ```
VM backtrace by itself ``` VM: 201904111858-AssertVM ich@macbookair.local:source/smalltalk/pharo/opensmalltalk-vm Date: Thu Apr 11 11:58:46 2019 CommitHash: 1d9c8bcfd Plugins: 201904111858-AssertVM ich@macbookair.local:source/smalltalk/pharo/opensmalltalk-vm
C stack backtrace & registers: rax 0x0000000000000000 rbx 0x0000000000000000 rcx 0x0400000000000000 rdx 0x000000012d2d1140 rdi 0x0000000000000000 rsi 0x0000000000000000 rbp 0x00007ffee2698f50 rsp 0x00007ffee2698f50 r8 0x0001471835afb3bc r9 0x0000000003ecc22d r10 0x000000011b345558 r11 0x000000011c067ce8 r12 0x000000013a6e7188 r13 0x0000000000000004 r14 0x000000013a6e7188 r15 0x0000000000000002 rip 0x000000010d545a04 0 Pharo 0x000000010d545a04 longAtPointer + 4 1 Pharo 0x000000010d5eaf8e reportStackState + 174 2 Pharo 0x000000010d5eb2f3 sigsegv + 195 3 libsystem_platform.dylib 0x00007fff5e938f5a _sigtramp + 26 4 AppKit 0x00007fff349238eb .str.41.llvm.C4DC25C8 + 241198 5 Pharo 0x000000010d545d5c fixFollowedFieldofObjectwithInitialValue + 76 6 Pharo 0x000000010d56cae7 markAndTrace + 2439 7 Pharo 0x000000010d569156 markObjects + 966 8 Pharo 0x000000010d568805 fullGC + 149 9 Pharo 0x000000010d584cc5 primitiveFullGC + 277 10 Pharo 0x000000010d53aae4 interpret + 26756 11 Pharo 0x000000010d545776 enterSmalltalkExecutiveImplementation + 310 12 Pharo 0x000000010d534407 interpret + 423 13 Pharo 0x000000010d5ecb59 -[sqSqueakMainApplication runSqueak] + 393 14 Foundation 0x00007fff388a07b8 __NSFirePerformWithOrder + 360 15 CoreFoundation 0x00007fff36717747 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 16 CoreFoundation 0x00007fff3671766f __CFRunLoopDoObservers + 527 17 CoreFoundation 0x00007fff366f9be8 __CFRunLoopRun + 1240 18 CoreFoundation 0x00007fff366f9483 CFRunLoopRunSpecific + 483 19 HIToolbox 0x00007fff359e3d96 RunCurrentEventLoopInMode + 286 20 HIToolbox 0x00007fff359e3a0f ReceiveNextEventCommon + 366 21 HIToolbox 0x00007fff359e3884 _BlockUntilNextEventMatchingListInModeWithFilter + 64 22 AppKit 0x00007fff33c93a73 _DPSNextEvent + 2085 23 AppKit 0x00007fff34429e34 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044 24 AppKit 0x00007fff33c88885 -[NSApplication run] + 764 25 AppKit 0x00007fff33c57a72 NSApplicationMain + 804 26 libdyld.dylib 0x00007fff5e62a015 start + 1 ```
lldb backtrace ``` Pharo was compiled with optimization - stepping may behave oddly; variables may not be available. Process 49107 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x0000000100013a04 Pharo`longAtPointer(ptr=0x0000000000000000) at sqMemoryAccess.h:141 [opt] 138 static inline sqInt shortAtPointerput(char *ptr, int val) { return (sqInt)(*((short *)ptr)= (short)val); } 139 static inline sqInt intAtPointer(char *ptr) { return (sqInt)(*((int *)ptr)); } 140 static inline sqInt intAtPointerput(char *ptr, int val) { return (sqInt)(*((int *)ptr)= val); } -> 141 static inline sqInt longAtPointer(char *ptr) { return *(sqInt *)ptr; } 142 static inline sqInt longAtPointerput(char *ptr, sqInt val) { return *(sqInt *)ptr= val; } 143 static inline sqLong long64AtPointer(char *ptr) { return *(sqLong *)ptr; } 144 static inline sqLong long64AtPointerput(char *ptr, sqLong val) { return *(sqLong *)ptr= val; } Target 0: (Pharo) stopped. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x0000000100013a04 Pharo`longAtPointer(ptr=0x0000000000000000) at sqMemoryAccess.h:141 [opt] frame #1: 0x0000000100013d5c Pharo`fixFollowedFieldofObjectwithInitialValue(fieldIndex=2, anObject=4944834952, initialValue=<unavailable>) at gcc3x-cointerp.c:48964 [opt] frame #2: 0x000000010003aae7 Pharo`markAndTrace(objOop=4430957424) at gcc3x-cointerp.c:53153 [opt] frame #3: 0x0000000100037156 Pharo`markObjects(objectsShouldBeUnmarkedAndUnmarkedClassesShouldBeExpunged=1) at gcc3x-cointerp.c:53409 [opt] frame #4: 0x0000000100036805 Pharo`fullGC at gcc3x-cointerp.c:49325 [opt] frame #5: 0x0000000100052cc5 Pharo`primitiveFullGC at gcc3x-cointerp.c:77294 [opt] frame #6: 0x0000000100008ae4 Pharo`interpret at gcc3x-cointerp.c:6186 [opt] frame #7: 0x0000000100013776 Pharo`enterSmalltalkExecutiveImplementation at gcc3x-cointerp.c:17314 [opt] frame #8: 0x0000000100002407 Pharo`interpret at gcc3x-cointerp.c:2755 [opt] frame #9: 0x00000001000bab59 Pharo`-[sqSqueakMainApplication runSqueak](self=0x00000001004310d0, _cmd=<unavailable>) at sqSqueakMainApplication.m:201 [opt] frame #10: 0x00007fff388a07b8 Foundation`__NSFirePerformWithOrder + 360 frame #11: 0x00007fff36717747 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 frame #12: 0x00007fff3671766f CoreFoundation`__CFRunLoopDoObservers + 527 frame #13: 0x00007fff366f9be8 CoreFoundation`__CFRunLoopRun + 1240 frame #14: 0x00007fff366f9483 CoreFoundation`CFRunLoopRunSpecific + 483 frame #15: 0x00007fff359e3d96 HIToolbox`RunCurrentEventLoopInMode + 286 frame #16: 0x00007fff359e3a0f HIToolbox`ReceiveNextEventCommon + 366 frame #17: 0x00007fff359e3884 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64 frame #18: 0x00007fff33c93a73 AppKit`_DPSNextEvent + 2085 frame #19: 0x00007fff34429e34 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044 frame #20: 0x00007fff33c88885 AppKit`-[NSApplication run] + 764 frame #21: 0x00007fff33c57a72 AppKit`NSApplicationMain + 804 frame #22: 0x00007fff5e62a015 libdyld.dylib`start + 1 frame #23: 0x00007fff5e62a015 libdyld.dylib`start + 1 (lldb) frame select 1 frame #1: 0x0000000100013d5c Pharo`fixFollowedFieldofObjectwithInitialValue(fieldIndex=2, anObject=4944834952, initialValue=<unavailable>) at gcc3x-cointerp.c:48964 [opt] 48961 /* begin fetchPointer:ofMaybeForwardedObject: */ 48962 objOop = longAt((objOop + BaseHeaderSize) + (0U << (shiftForWord()))); 48963 } while(((objOop & (tagMask())) == 0) -> 48964 && (((longAt(objOop)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun()))) == 0)); 48965 /* begin storePointer:ofObject:withValue: */ 48966 assert(!(isForwarded(anObject))); 48967 if ((assert(isNonImmediate(anObject)), (lldb) p objOop (sqInt) $0 = 0 (lldb) q ```
I think I got today a similar error on MacOS 10.14.3, with Pharo 7 and latest stable vm. The crash happens when opening a saved image.
``` VM: 201903251926 https://github.com/OpenSmalltalk/opensmalltalk-vm.git Date: Mon Mar 25 12:26:43 2019 CommitHash: 4e1be2c Plugins: 201903251926 https://github.com/OpenSmalltalk/opensmalltalk-vm.git
C stack backtrace & registers: rax 0x00adc08500000c01 rbx 0x0000000119bbbff8 rcx 0x0080000000000000 rdx 0x0000000000001170 rdi 0x0000000119bbbff0 rsi 0x0000000119bbbff0 rbp 0x00007ffee9199000 rsp 0x00007ffee9198fc0 r8 0x00007ffee91991d1 r9 0x00007ffee91cb1d8 r10 0x000000010de65248 r11 0x00007ffee919b1a0 r12 0x00ffffffffffffff r13 0x72656469678d6588 r14 0x0000000119bbbff0 r15 0x0000000000000002 rip 0x0000000106a5b74a 0 Pharo 0x0000000106a5b74a markAndTrace + 843 1 Pharo 0x0000000106abf531 reportStackState + 952 2 Pharo 0x0000000106abf88b sigsegv + 195 3 libsystem_platform.dylib 0x00007fff7069fb3d _sigtramp + 29 4 ??? 0x0000000000000000 0x0 + 0 5 Pharo 0x0000000106a582d2 markObjects + 463 6 Pharo 0x0000000106a57aaa fullGC + 72 7 Pharo 0x0000000106a6e324 primitiveFullGC + 38 8 Pharo 0x0000000106a37c8d interpret + 17947 9 Pharo 0x0000000106a4151f enterSmalltalkExecutiveImplementation + 149 10 Pharo 0x0000000106a338e6 interpret + 628 11 Pharo 0x0000000106ac0cb9 -[sqSqueakMainApplication runSqueak] + 393 12 Foundation 0x00007fff456d3d63 __NSFirePerformWithOrder + 381 13 CoreFoundation 0x00007fff432c08ed __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 14 CoreFoundation 0x00007fff432c0822 __CFRunLoopDoObservers + 452 15 CoreFoundation 0x00007fff43262345 __CFRunLoopRun + 1166 16 CoreFoundation 0x00007fff43261c64 CFRunLoopRunSpecific + 463 17 HIToolbox 0x00007fff424f8ab5 RunCurrentEventLoopInMode + 293 18 HIToolbox 0x00007fff424f86f4 ReceiveNextEventCommon + 371 19 HIToolbox 0x00007fff424f8568 _BlockUntilNextEventMatchingListInModeWithFilter + 64 20 AppKit 0x00007fff407b3363 _DPSNextEvent + 997 21 AppKit 0x00007fff407b2102 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1362 22 AppKit 0x00007fff407ac165 -[NSApplication run] + 699 23 AppKit 0x00007fff4079b8a3 NSApplicationMain + 780 24 libdyld.dylib 0x00007fff704b4ed9 start + 1 ```
``` Smalltalk stack dump: 0x7ffee919dc68 I SmalltalkImage>garbageCollect 0x10e3259a8: a(n) SmalltalkImage 0x7ffee919dcb0 I ByteArray class(Behavior)>handleFailingBasicNew: 0x10e316d78: a(n) ByteArray class 0x7ffee919dcf0 M ByteArray class(Behavior)>basicNew: 0x10e316d78: a(n) ByteArray class 0x7ffee919dd28 M ByteArray class(Behavior)>new: 0x10e316d78: a(n) ByteArray class 0x7ffee919dd60 M ByteArray class(SequenceableCollection class)>ofSize: 0x10e316d78: a(n) ByteArray class 0x7ffee919dda8 M ByteArray(SequenceableCollection)>grownBy: 0x11be91738: a(n) ByteArray 0x7ffee919ddf0 M WriteStream>growTo: 0x10df1bbe8: a(n) WriteStream 0x7ffee919de30 M WriteStream>nextPutAll: 0x10df1bbe8: a(n) WriteStream 0x7ffee919de68 M WriteStream(Stream)>next:putAll:startingAt: 0x10df1bbe8: a(n) WriteStream 0x7ffee919dec0 M WriteStream>next:putAll:startingAt: 0x10df1bbe8: a(n) WriteStream 0x7ffee919df08 M [] in ZnBufferedReadStream>upToEnd 0x10df0b958: a(n) ZnBufferedReadStream 0x7ffee919df48 M ByteArray class(SequenceableCollection class)>new:streamContents: 0x10e316d78: a(n) ByteArray class 0x7ffee919df88 M ByteArray class(SequenceableCollection class)>streamContents: 0x10e316d78: a(n) ByteArray class 0x7ffee919dfd0 I ZnBufferedReadStream>upToEnd 0x10df0b958: a(n) ZnBufferedReadStream 0x7ffee919e010 I ZnBufferedReadStream>contents 0x10df0b958: a(n) ZnBufferedReadStream 0x7ffee919e040 M [] in LucidaGrandeRegular class>fontContents 0x10eaeeb08: a(n) LucidaGrandeRegular class 0x7ffee919e088 M [] in FileReference(AbstractFileReference)>binaryReadStreamDo: 0x10df0aa90: a(n) FileReference 0x7ffee919e0c8 M BlockClosure>ensure: 0x10df1ba48: a(n) BlockClosure 0x7ffee919e118 I FileReference(AbstractFileReference)>binaryReadStreamDo: 0x10df0aa90: a(n) FileReference 0x7ffee919e160 I LucidaGrandeRegular class>fontContents 0x10eaeeb08: a(n) LucidaGrandeRegular class 0x7ffee919e1a8 I LucidaGrandeRegular class(EmbeddedFreeTypeFontFontDescription class)>installFontsIn: 0x10eaeeb08: a(n) LucidaGrandeRegular class 0x7ffee919acc8 M [] in EmbeddedFreeTypeFontFontDescription class>installAllFontsIn: 0x10eae39f8: a(n) EmbeddedFreeTypeFontFontDescription class 0x7ffee919ad10 M OrderedCollection>do: 0x10df01e60: a(n) OrderedCollection 0x7ffee919ad58 I EmbeddedFreeTypeFontFontDescription class>installAllFontsIn: 0x10eae39f8: a(n) EmbeddedFreeTypeFontFontDescription class 0x7ffee919ada0 I EmbeddedFreeTypeFontInstaller>installAllFontsIn: 0x10f00a4b0: a(n) EmbeddedFreeTypeFontInstaller 0x7ffee919add8 M [] in FreeTypeFontProvider>updateEmbeddedFreeTypeFonts 0x10f00a350: a(n) FreeTypeFontProvider 0x7ffee919ae20 M OrderedCollection>do: 0x10f04a1a8: a(n) OrderedCollection 0x7ffee919ae68 I FreeTypeFontProvider>updateEmbeddedFreeTypeFonts 0x10f00a350: a(n) FreeTypeFontProvider 0x7ffee919aea8 I FreeTypeSettings class>updateFreeType 0x10eb54ac8: a(n) FreeTypeSettings class 0x7ffee919aee8 I FreeTypeSettings class>startUp: 0x10eb54ac8: a(n) FreeTypeSettings class 0x7ffee919af20 M ClassSessionHandler>startup: 0x10f0159f0: a(n) ClassSessionHandler 0x7ffee919af60 M [] in WorkingSession>runStartup: 0x10dc79000: a(n) WorkingSession 0x7ffee919afa8 M [] in WorkingSession>runList:do: 0x10dc79000: a(n) WorkingSession 0x7ffee919afd8 M BlockClosure>on:do: 0x10df01c38: a(n) BlockClosure 0x7ffee919b020 M [] in WorkingSession>runList:do: 0x10dc79000: a(n) WorkingSession 0x7ffee919b068 M Array(SequenceableCollection)>do: 0x10dc7e970: a(n) Array 0x7ffee919b0b0 I WorkingSession>runList:do: 0x10dc79000: a(n) WorkingSession 0x7ffee919b100 I WorkingSession>runStartup: 0x10dc79000: a(n) WorkingSession 0x7ffee919b148 I WorkingSession>start: 0x10dc79000: a(n) WorkingSession 0x7ffee919b1a0 I SessionManager>launchSnapshot:andQuit: 0x10e38d000: a(n) SessionManager 0x11b1bb1d8 s [] in SessionManager>snapshot:andQuit: 0x11b1c5878 s [] in BlockClosure>newProcess ```
Hi, I have similar issue. It happens regularly while loading and manipulating large data.
``` Segmentation fault Fri Nov 8 11:06:13 2019
VM: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.git Date: Sat Jan 5 20:00:11 2019 CommitHash: 7a3c6b6 Plugins: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.git
C stack backtrace & registers: rax 0x00000001199726a8 rbx 0x00000000000002f9 rcx 0x0000000000000e79 rdx 0x0000000000000e7a rdi 0x00000001199726a8 rsi 0x00000001199726a8 rbp 0x00007ffee1e2bfb0 rsp 0x00007ffee1e2bf70 r8 0x00007ffee1e2c181 r9 0x00007ffee1e5e188 r10 0x0000000147f14070 r11 0x00007ffee1e4c160 r12 0x00000000002e4b20 r13 0x00000001375dc2e8 r14 0x000000000000005f r15 0x0000000000000060 rip 0x000000010ddc9022 0 Pharo 0x000000010ddc9022 markAndTrace + 612 1 Pharo 0x000000010de29642 reportStackState + 952 2 Pharo 0x000000010de29987 sigsegv + 174 3 libsystem_platform.dylib 0x00007fff65d76b1d _sigtramp + 29 4 AppKit 0x00007fff2c521bf2 .str.38.llvm.12197241172547621084 + 544365 5 Pharo 0x000000010ddc5ca6 markObjects + 463 6 Pharo 0x000000010ddc547e fullGC + 72 7 Pharo 0x000000010dddc8ff primitiveFullGC + 38 8 Pharo 0x000000010dda55e1 interpret + 17947 9 Pharo 0x000000010ddaeebb enterSmalltalkExecutiveImplementation + 149 10 Pharo 0x000000010dda123a interpret + 628 11 Pharo 0x000000010de2adca -[sqSqueakMainApplication runSqueak] + 393 12 Foundation 0x00007fff30e431cb __NSFirePerformWithOrder + 360 13 CoreFoundation 0x00007fff2e6f866e __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 14 CoreFoundation 0x00007fff2e6f8594 __CFRunLoopDoObservers + 457 15 CoreFoundation 0x00007fff2e69b72b __CFRunLoopRun + 1219 16 CoreFoundation 0x00007fff2e69afe3 CFRunLoopRunSpecific + 499 17 HIToolbox 0x00007fff2d22267d RunCurrentEventLoopInMode + 292 18 HIToolbox 0x00007fff2d2222c9 ReceiveNextEventCommon + 356 19 HIToolbox 0x00007fff2d222147 _BlockUntilNextEventMatchingListInModeWithFilter + 64 20 AppKit 0x00007fff2b8a7864 _DPSNextEvent + 990 21 AppKit 0x00007fff2b8a65d4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352 22 AppKit 0x00007fff2b8a0d76 -[NSApplication run] + 658 23 AppKit 0x00007fff2b89295d NSApplicationMain + 777 24 libdyld.dylib 0x00007fff65b752e5 start + 1
Smalltalk stack dump: 0x7ffee1e44e58 I SmalltalkImage>garbageCollect 0x1162c79e8: a(n) SmalltalkImage 0x7ffee1e44ea0 I Array class(Behavior)>handleFailingBasicNew: 0x1162b8ea0: a(n) Array class 0x7ffee1e44ee0 M Array class(Behavior)>basicNew: 0x1162b8ea0: a(n) Array class 0x7ffee1e44f18 M Array class>new: 0x1162b8ea0: a(n) Array class 0x7ffee1e44f58 M Dictionary(HashedCollection)>grow 0x139b1f728: a(n) Dictionary 0x7ffee1e44f88 M Dictionary(HashedCollection)>fullCheck 0x139b1f728: a(n) Dictionary 0x7ffee1e44fb8 M Dictionary(HashedCollection)>atNewIndex:put: 0x139b1f728: a(n) Dictionary 0x7ffee1e45008 M Dictionary>at:put: 0x139b1f728: a(n) Dictionary 0x7ffee1e45050 M [] in NeoJSONReader>parseMap 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e45098 M [] in NeoJSONReader>parseMapKeysAndValuesDo: 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e450e0 M [] in NeoJSONReader>parseMapKeysDo: 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e45110 M NeoJSONReader>parseMapDo: 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e45158 I NeoJSONReader>parseMapKeysDo: 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e59ac8 I NeoJSONReader>parseMapKeysAndValuesDo: 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e59b18 I NeoJSONReader>parseMap 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e59b60 I NeoJSONReader>parseValue 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e59ba0 I NeoJSONReader>next 0x139b1f430: a(n) NeoJSONReader 0x7ffee1e59bd0 M [] in UndefinedObject>DoIt 0x1162a48e0: a(n) UndefinedObject 0x7ffee1e59c18 M [] in FileLocator(AbstractFileReference)>readStreamEncoded:do: 0x11dff5850: a(n) FileLocator 0x7ffee1e59c58 M BlockClosure>ensure: 0x139b1f838: a(n) BlockClosure 0x7ffee1e59ca8 I FileLocator(AbstractFileReference)>readStreamEncoded:do: 0x11dff5850: a(n) FileLocator 0x7ffee1e59ce8 M [] in UndefinedObject>DoIt 0x1162a48e0: a(n) UndefinedObject 0x7ffee1e59d30 I Time class>microsecondsToRun: 0x1162b9ff0: a(n) Time class 0x7ffee1e59d78 I Time class>millisecondsToRun: 0x1162b9ff0: a(n) Time class 0x7ffee1e59dc8 I BlockClosure>timeToRun 0x139b1fa00: a(n) BlockClosure 0x7ffee1e59df8 M UndefinedObject>DoIt 0x1162a48e0: a(n) UndefinedObject 0x7ffee1e59e40 I OpalCompiler>evaluate 0x139b1fad8: a(n) OpalCompiler 0x7ffee1e59e98 I RubSmalltalkEditor>evaluate:andDo: 0x119bba808: a(n) RubSmalltalkEditor 0x7ffee1e59ee8 I RubSmalltalkEditor>highlightEvaluateAndDo: 0x119bba808: a(n) RubSmalltalkEditor 0x7ffee1e59f28 M [] in GLMMorphicPharoScriptRenderer(GLMMorphicPharoCodeRenderer)>actOnHighlightAndEvaluate: 0x119be9110: a(n) GLMMorphicPharoScriptRenderer 0x7ffee1e59f68 I RubEditingArea(RubAbstractTextArea)>handleEdit: 0x119bf27c0: a(n) RubEditingArea 0x7ffee1e59fa8 M [] in GLMMorphicPharoScriptRenderer(GLMMorphicPharoCodeRenderer)>actOnHighlightAndEvaluate: 0x119be9110: a(n) GLMMorphicPharoScriptRenderer 0x7ffee1e59fe8 M WorldState>runStepMethodsIn: 0x1169b6a80: a(n) WorldState 0x7ffee1e5a020 M WorldMorph>runStepMethods 0x1169b0ac8: a(n) WorldMorph 0x7ffee1e5a050 M WorldState>doOneCycleNowFor: 0x1169b6a80: a(n) WorldState 0x7ffee1e5a088 M WorldState>doOneCycleFor: 0x1169b6a80: a(n) WorldState 0x7ffee1e5a0c0 M WorldMorph>doOneCycle 0x1169b0ac8: a(n) WorldMorph 0x7ffee1e5a0f0 M WorldMorph class>doOneCycle 0x1169ad958: a(n) WorldMorph class 0x7ffee1e5a120 M [] in MorphicUIManager>spawnNewProcess 0x12df61fe0: a(n) MorphicUIManager 0x7ffee1e5a160 I [] in BlockClosure>newProcess 0x139a2f3c8: a(n) BlockClosure
Most recent primitives stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: compare:with:collated: compare:with:collated: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: compare:with:collated: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: replaceFrom:to:with:startingAt: stringHash:initialHash: grow grow sizes sizes repeat repeat repeat repeat repeat repeat repeat repeat basicNew: handleFailingBasicNew: byteSizeOfInstanceOfSize: finalizeValues finalizeValues primitiveGarbageCollect **FullGC**
stack page bytes 4096 available headroom 1480 minimum unused headroom 1728
(Segmentation fault) ```
It happened in a Pharo 8 image:
``` Image ----- Pharo8.0.0 Build information: Pharo-8.0.0+build.954.sha.c2062e358bfae78d8161071f255bb60de20c8e9d (64 Bit) Unnamed
Virtual Machine --------------- /Users/..../Pharo/vms/80-x64/Pharo.app/Contents/MacOS/Pharo CoInterpreter VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11 Jan 5 2019 StackToRegisterMappingCogit VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11 Jan 5 2019 VM: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.git Date: Sat Jan 5 20:00:11 2019 CommitHash: 7a3c6b6 Plugins: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.git
Mac OS X built on Jan 5 2019 19:11:02 UTC Compiler: 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31) VMMaker versionString VM: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.git Date: Sat Jan 5 20:00:11 2019 CommitHash: 7a3c6b6 Plugins: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.git CoInterpreter VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11 Jan 5 2019 StackToRegisterMappingCogit VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11 Jan 5 2019 ```
This basically shows that in a larger image, garbage collection is not reliable. This should be considered a critical bug.
Happened to me more than once recently with latest pharo8, had to discard an image because could not save it anymore (GC is triggered when saving)
Could we create and publish a reproducible case (at least statistically reproducible, because it looks like heisenbug again...)? Like parsing a giant public json or something? Is it possible to make a Squeak VM crash? If memory got corrupted, no matter how, the bug could well be revealed at garbage collect time, when we scan the whole memory, so even if above reports indicates somehow common symptoms, it's very hard to use them as starting point for more thorough analysis of the problem...
We encounter this bug when we deal with data that is private. We did not yet find a case that can be easily shared. But, we are still looking for it.
Hi, this issue might be related to #444 as I also the same stack trace for very similar script:
```Smalltalk | aJson anArray | aJson := ZnEasy get: 'https://data.nasa.gov/resource/y77d-th95.json' asZnUrl. Array streamContents: [ :aStream | 4000 timesRepeat: [ aStream nextPutAll: (STON fromString: aJson contents). Smalltalk saveSession ] ]. anArray inspect. ```
[crash.dmp.txt](https://github.com/OpenSmalltalk/opensmalltalk-vm/files/3843452/crash.dmp.tx...)
Hi Jurai,
indeed, https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/444 looks To me to be related. (Apologies got the link formatting; I’m on my phone).
Can you (or soneone in the Pharo team) please - verify which release Pharo images are valid or invalid - remove urgently images that are invalid - contact all potential users asking them to discard the gorrupted images and any derivatives - close all opensmalltalk-vm issues that are in fact not VM/GC bugs but derivatives of the image corruption
This is a matter of urgency.
I shall try and write a VMMaker and/or VM level script/executable that simply performs the leak check and answers if an image is corrupt or not. This does not need much of the vm; it only needs the GC, leak checker and image loading components and can be headless. I’ll discuss this on opensmalltalk-vm and cc Pharo-dev, Squeak-dev & Cuis-dev.
Hi Eliot,
thank you for the comments! Would you have time to help me to setup an environment that I can reproduce your steps and use it to verify older images?
Hi Eliot,
I tested the latest pharo image, a couple of earlier ones and the latest minimal image. `validImage` didn't find any leaks in any of the images.
As I mentioned in https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/444, I'm looking at the receiver in the Frame Pointers not being updated during garbage collection.
On Sun, Nov 24, 2019 at 8:25 AM Alistair Grant notifications@github.com wrote:
Hi Eliot,
I tested the latest pharo image, a couple of earlier ones and the latest minimal image. validImage didn't find any leaks in any of the images.
Indeed. That's now fixed. See VMMaker.oscog-eem.2596
_,,,^..^,,,_ best, Eliot
Juraj, Alistair, can any of you check if the fix for #444 also fixes this problem?
I'm happy for it to be closed.
@zecke ?
Closed #391.
vm-dev@lists.squeakfoundation.org