File size on Panther
Colin Putney
cputney at wiresong.ca
Wed Nov 12 22:42:35 UTC 2003
Hi folks,
Yes, more Panther woes.
The problem is that CompiledMethod>>#timeStamp occasionally goes into
an infinite loop. The reason is that StandardFileStream>>#size reports
the wrong size for the changes file. This causes #nextChunk to return
empty strings without advancing the file position, which then never
reaches the position the loop is testing for, which means the loop
never exits.
The only way I've been able to reproduce this is by running the
Monticello test suite, which just happens to be an incredible stress
test for just this sort of thing. It does a lot of changing methods
(thereby lengthening the changes file), then fetching sources, then
changing methodz again, all in rapid succession. At some random point
in the test run MC will hang while attempting to take a snapshot of the
mock package and eventually the ProcessBrowser will intervene allowing
me to debug. Recovering the test run is quite easy - all I have to do
is restart CompiledMethod>>#timeStamp and proceed, then all is well. I
suspect this is because the file is reopened at the beginning of the
method.
It makes no difference whether I use a 3.6 or 3.7 image, nor whether I
run the Unix VM (3.6g-2) or the Carbon VM (3.6.1Beta2).
This leaves me about to dig into the FilePlugin, where I am out of my
depth.
Any ideas?
Colin
More information about the Squeak-dev
mailing list
|