Recently, an image I've been using for years has started crashing more or less constantly (e.g., every few minutes, even if I don't do anything). I think this may have coincided with my doing an upgrade and reboot of my Debian system a few days ago, though the last change to my VM was Apr 02 of this year.
I'm using squeak-vm 3.9.7-11 from the squeak Debian archives (sid).
Under strace, the end of the last session looked like ioctl(3, FIONREAD, [0]) = 0 gettimeofday({1177216794, 848817}, NULL) = 0 select(4, [3], [], [3], {0, 0}) = 0 (Timeout) nanosleep({0, 1000000}, {2000154628, 134618861}) = 0 gettimeofday({1177216794, 856229}, NULL) = 0 select(4, [3], [], [3], {0, 0}) = 0 (Timeout) gettimeofday({1177216794, 856329}, NULL) = 0 gettimeofday({1177216794, 856381}, NULL) = 0 gettimeofday({1177216794, 856429}, NULL) = 0 gettimeofday({1177216794, 856476}, NULL) = 0 gettimeofday({1177216794, 856523}, NULL) = 0 gettimeofday({1177216794, 856568}, NULL) = 0 gettimeofday({1177216794, 856625}, NULL) = 0 ioctl(3, FIONREAD, [0]) = 0 gettimeofday({1177216794, 856718}, NULL) = 0 select(4, [3], [], [3], {0, 0}) = 0 (Timeout) gettimeofday({1177216794, 856821}, NULL) = 0 gettimeofday({1177216794, 856869}, NULL) = 0 gettimeofday({1177216794, 857087}, NULL) = 0 gettimeofday({1177216794, 857181}, NULL) = 0 gettimeofday({1177216794, 857234}, NULL) = 0 gettimeofday({1177216794, 857283}, NULL) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7cf8000 write(1, "\n", 1) = 1 write(1, "Segmentation fault\n", 19) = 19 write(1, "\n", 1) = 1 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 tgkill(21689, 21689, SIGABRT) = 0 --- SIGABRT (Aborted) @ 0 (0) --- +++ killed by SIGABRT +++
It's not clear to me whether the fstat64 is likely to have triggered the sigsegv, or if the call to fstat64 is a consequence of handling the error.
There are a lot of odd things about the image. It is old, originally from 3.0 and updated through about 3.6 when conflicts with DateAndTime (which I had obtained outside the regular update stream) made further updates challenging.
It is very big and very slow. The disk image is 42MB; the resident set size according to top is 32MB. The vm preallocates about 1G on startup; I don't know a good way to figure what's really going on with memory.
I have a background process that sleeps and then updates the application, which keeps track of time spent in activities.
The image crashes under both a Linux 2.6.18 kernel (the strace above) and a 2.4.27 kernel (which is what I've been running under).
I started up a clean, default squeak image (under the 2.6 kernel), and it has not crashed in the same time that my image has crashed repeatedly.
I have an AMD Athlon CPU (i.e., 32 bit Intel type CPU). man fstat64 turns up nothing, though the call does seem to be in some of the system headers.
Any ideas?
Ross Boylan