I am seeing Squeak crash (segment fault) every four and a half days. (actually 4.586041667 days, 110.065 hours, or 396234 seconds, give or take a few seconds).
Doesn't matter if the image is idling or busy (mostly SMTP and Web serving). This has been happening for many months, fully repeatable, on 2 different machines. I've basically lived with it (and it's somewhat dampening effect on my confidence in Squeak for mission critical apps) because I haven't the slightest idea why it's happening, but after my last build, it has gone from 4.58 days to only 1.74 days (albeit based on only one sample so far).
The image is 3.7 vintage, 24M given -memory 30M, recent vm (exact versions or any other details of interest on request), running on Debian on a XEN or UML virtual node. (I'm currently trying it on a real box to see if virtualization could somehow be implicated).
I can't begin to fathom what event could possibly be happening in the VM that would be tied to this particular time interval, or anything special about the value itself. (I imagine that GC is the code that's running when it crashes). Any thoughts?
squeakdev@reider.net wrote:
I can't begin to fathom what event could possibly be happening in the VM that would be tied to this particular time interval, or anything special about the value itself. (I imagine that GC is the code that's running when it crashes). Any thoughts?
The main thought is that you shouldn't start pointing fingers unless you have at least _some_ evidence supporting your claims. It's easy to claim that it's caused by GC, or the network subsystem, or the timer code, or the OS signal handling or any number of random reasons if you have no idea what is going on. Things to do: - Tell us more about what you are actually running. Is this is a stock 3.7 VM and image? If not what packages have you loaded? Do you have specific dependencies on external (non-squeak) packages? Dependencies on external C libraries that could cause memory corruption? - Run the VM under gdb and let it crash. Try to investigate from there, in particular try to print the call stacks (don't remember what the magic invocation is). The VM implements both, printCallStack() to print the active call stack and printAllStacks() which prints all the call stacks (but I'm not sure which of those is supported in 3.7).
Cheers, - Andreas
squeak-dev@lists.squeakfoundation.org