[squeak-dev] ReleaseBuilder package

gettimothy gettimothy at zoho.com
Thu Sep 12 23:45:50 UTC 2013


They is very interesting.

As it happens, I am studying the Linux Programming Interface a bit each day and File IO is one of the earlier chapters.
Perhaps I will learn enough to code a fix. 

thanks for the pointer to the code. I have it on disk and am doing my first attempt at a VM build now. 

t.

---- On Thu, 12 Sep 2013 16:17:57 -0700 tim Rowledge<tim at rowledge.org> wrote ---- 


(We're going to have to be careful here not to confuse which Tim you're writing to; if y'all can remember to use a lowercase 't' for me it might help) 
 
 
On 12-09-2013, at 4:01 PM, Bob Arning <arning315 at comcast.net> wrote: 
 
> Tim, 
> 
> I does not appear to be an image problem. Frank suggested this: 
> 
> On 4/26/13 6:17 AM, Frank Shearar wrote 
>> For those not following the Pharo list, it looks like the root cause 
>> is that the glibc in Ubuntu 13.04 doesn't immediately write new 
>> content out to the file. Thus you can "write" to the file, and then 
>> read from the file, only your RemoteString starts off the end of the 
>> file. The fix is to make WriteStream >> #nextPutChunk: call "self 
>> flush". I've pushed a 4.5 fix to trunk, but have not yet done the same 
>> for the 4.4 and 4.3 update streams. 
>> 
>> frank 
>> 
>> 
>> 
> Some thought this not the nicest solution, but it would be useful to know if the image you are using has had this added or if you can add it and try. 
> 
> Frank did add this later after retracting the squeak change 
> That's correct: patching #nextChunkPut: almost certainly masks the underlying problem, and the more experience Squeakers strongly suggested I revert. I'll post updates as they happen. 
> If I were experiencing this problem I suspect I'd make the fix and move on rather than re-experience the problem over and over. 
> 
> Also see if your Linux distro has fixed it on their end 
 
There is, or used to be, code in the FilePlugin that attempted to help with this since a lot of systems had a problem due to over-zealous write caching that ignored self-consistency. Ah, here we are; in sqFilePluingBasicPrims.c, in sqFileWriteFromAt() we have 
    if (f->lastOp == READ_OP) fseek(file, 0, SEEK_CUR); /* seek between reading and writing */ 
The intent here - and remember this is code over 15 years old - was to force the actual write by inserting a seek. IIRC a flush was considered too expensive. It only really affects unices as far as I can see since RISC OS, OS X & Win32 all have their own more locally customised versions that handle it platform specifically. 
 
If unices have changed in such a way that they need more thorough flushing then we need some expert knowledge of the best options. 
 
 
 
tim 
-- 
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim 
Science is imagination equipped with grappling hooks. 
 
 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130912/f5007e13/attachment.htm


More information about the Squeak-dev mailing list