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