Hi Sean, Hi All,
This issue is characterized by the system crashing soon after start up when some significant i/o is done, typically either to files or sockets. It affects macOS only and may indeed affect only 64-bits. We have strong evidence that it is caused by the dynamic linker being invoked in the signal handler for SIGIO when the signal is delivered while the VM is executing JITted code. The symptom that causes the crash is corruption of a particular jitted method���s machine code, eg Delay class>>#startEventLoop, and we believe that the corruption is caused by the linker when it misinterprets a jitted Smalltalk stack frame as an ABI-compliant stack frame and attempts to scan code to link it.
Our diagnosis is speculative; this is extremely hard to reproduce. Typically in repeating a crashing run SIGIO may no longer be delivered at the same point because any remote server has now woken up and delivers results sooner, etc. However, Nicolas Cellier and I are both confident that we have correctly identified the bug.
The fix is simple; SIGIO should be delivered on a dedicated signal stack (see sigaltstack(2)). I committed a fix yesterday evening and we should see within a week or so if these crashes have disappeared.
Eliot
_,,,^..^,,,_ (phone)
Segmentation fault Thu Oct 3 15:52:33 2019VM: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.gitDate: Sat Jan 5 20:00:11 2019 CommitHash: 7a3c6b6Plugins: 201901051900 https://github.com/OpenSmalltalk/opensmalltalk-vm.gitC stack backtrace & registers: rax 0x0000000124380000 rbx 0x00007ffeebd00050 rcx 0x0000000000468260 rdx0x0000000000dd6800 rdi 0x0000000124cee5a0 rsi 0x0000000124cee5a0 rbp 0x00007ffeebcffe50 rsp0x00007ffeebcffe50 r8 0x00007fff3f2cefe5 r9 0x0000000000000b00 r10 0x0000000000006000 r110xfffffffffcd8d5a0 r12 0x0000000000000002 r13 0x0000000035800000 r14 0x00007ffeebd00064 r150x0000000000002800 rip 0x00007fff630f7d090 libsystem_platform.dylib 0x00007fff630f7d09_platform_memmove$VARIANT$Haswell + 411 Pharo 0x0000000103f52642 reportStackState+ 9522 Pharo 0x0000000103f52987 sigsegv + 1743 libsystem_platform.dylib 0x00007fff630fab3d _sigtramp + 294 ??? 0x0000058900000a00 0x0 +60859686609925 libGLImage.dylib 0x00007fff3f2ce29eglgProcessPixelsWithProcessor + 21496 AMDRadeonX5000GLDriver 0x000000010db16db1 glrATIStoreLevels+ 16007 AMDRadeonX5000GLDriver 0x000000010db52c83glrAMD_GFX9_LoadSysTextureStandard + 458 AMDRadeonX5000GLDriver 0x000000010db519bb glrUpdateTexture+ 13469 libGPUSupportMercury.dylib 0x00007fff5181279dgpusLoadCurrentTextures + 59110 AMDRadeonX5000GLDriver 0x000000010db5a099 gldUpdateDispatch+ 39711 GLEngine 0x00007fff3ff72078gleDoDrawDispatchCore + 62912 GLEngine 0x00007fff3ff16369glDrawArraysInstanced_STD_Exec + 26413 GLEngine 0x00007fff3ff1625aglDrawArrays_UnpackThread + 4014 GLEngine 0x00007fff3ff6dce1 gleCmdProcessor +7715 libdispatch.dylib 0x00007fff62ec2dcf_dispatch_client_callout + 816 libdispatch.dylib 0x00007fff62ecea2c_dispatch_lane_barrier_sync_invoke_and_complete + 6017 GLEngine 0x00007fff3fec4b85glFlush_ExecThread + 1518 Pharo 0x0000000103f4cc62-[sqSqueakOSXOpenGLView drawRect:flush:] + 31419 Pharo 0x0000000103f4cb22 -...Smalltalk stack dump: 0x7ffeebd14238 M DelaySemaphoreScheduler>unscheduleAtTimingPriority0x10fab3ad0: a(n) DelaySemaphoreScheduler 0x7ffeebd14270 M [] inDelaySemaphoreScheduler(DelayBasicScheduler)>runBackendLoopAtTimingPriority0x10fab3ad0: a(n) DelaySemaphoreScheduler 0x1125923f8 s BlockClosure>ensure: 0x111e88d30 sDelaySemaphoreScheduler(DelayBasicScheduler)>runBackendLoopAtTimingPriority 0x112590a50 s [] inDelaySemaphoreScheduler(DelayBasicScheduler)>startTimerEventLoopPriority: 0x111e88e08 s [] in BlockClosure>newProcessMost recent primitives@actualScreenSizemillisecondClockValuetempAt:-----Cheers,Sean--Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html