[squeak-dev] FileDoesNotExistException on existing changes file during trunk update

Eliot Miranda eliot.miranda at gmail.com
Mon Sep 1 13:50:57 UTC 2014


Hi Chris,

On Aug 31, 2014, at 3:48 PM, Chris Muller <asqueaker at gmail.com> wrote:

> Hi Bernard,
> 
>> Thanks for your answer! See below.
>> 
>> Am 31.08.2014 um 09:50 schrieb Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>:
>>> 2014-08-30 15:31 GMT+02:00 Bernhard Pieber <bernhard at pieber.com>:
>>>> Dear fellow Squeakers,
>>>> 
>>>> I continued my quest to create a current clean 4.6 trunk imge and still run into problems.
>>>> 
>>>> I am on OS X 10.9.4. I use Eliot's latest Cog.app and the 4.5 release image (Squeak4.5-13680.image) from the FTP server. See here [1] for the bash commands I use to set up my starting point.
>>>> 
>>>> Then I execute the following script in a workspace:
>>>> 
>>>> MCMcmUpdater
>>>>        defaultUpdateURL: 'http://source.squeak.org/trunk';
>>>>        updateFromServer.
>>>> 
>>>> During processing of update-eem.287.mcm a popup menu appears saying that the Squeak4.5-13680.changes file does not exist. This is incorrect because the file exists. When I choose Debug I get FileDoesNotExistException. See the attached PNG and SqueakDebug.log.
>>>> 
>>>> I would be interested if others run into the same problem.
>>> 
>>> It happens to me from time to time.
>> It's a consolation to know that I am not the only one seeing this. With the process I follow I have it every time, i.e. I can reliably reproduce it.
> 
> This is really strange Bernnard.  But one thing to remember is that
> the 13680 image has a corruption.  Search the mailing list for
> subject:  "(Environment named: #Smalltalk) trap in 4.5."  That thread
> explains the corruption related to having String-key's in an
> IdentityDictionary..
> 
> Could you try updating your 13680 image from the 'squeak45' repository
> FIRST, to ensure you get my fix for that BEFORE you change to trunk.
> This will take you to 13687.  THEN you can change your updateUrl to
> trunk and update from there.  Does that help on your end at all?
> 
> I just tried it both ways but didn't experience the issues you did
> whether I updated from squeak45 first or not.  No dirty packages, and
> your Error catch select: produced no errors but returned an empty
> collection for me.
> 
> But I'm going from Linux and using the 2776 VM which ships with 4.5.
> I think that is the most reliable VM right now.  I'm curious if you
> reproduce my steps above whether it reproduces my success?

Please NO, NO and thrice NO.  Each VM I post on my site is posted because it fixes some bug or achieves some performance improvement or adds functionality.  2776 is old.  It contains bugs fixed by subsequent releases.  Unless you have regression treats showing failures with later VMs you should use the latest VM available.

Note that there is significant regression testing of Newspeak VMs at Cadence.

Releasing old VMs just makes everyone's life harder.  I have to explain that it's not the latest, and they have to upload it.  So /please/ use the latest VM available.

Obviously Spur VMs are buggy but they're young and hence less stable, but that's not the case for the Cog VMs.

> 
> Let's not give up on this!  It sounds like there's a problem lurking,
> possibly only in Mac..??
> 
>>> I suspect that there are two many files opened before the reclamation facility has a chance to work.
>>> I suspect the read-only copy of change file to open those files.
>> I am not sure I understand your last sentence. Could you please elaborate?
>> 
>>> I you open the debugger and restart from the right place (?), the update correctly resumes (but it's not very automated...).
>> Right. Even if I don't debug but just choose the existing changes file in the popup menu the trunk update resumes and finishes.
>> 
>> However, there are several other problems:
>> 1. The Environments package is dirty and has two ancestors (nice.47, cmm.51).
>> 2. There are many corrupt files in the package-cache.
>> 3. I get a strange variant of the "Error: Bits size mismatch" in CompiledMethodTrailer>>#encodeUsingZip when I execute the following script to find out the corrupt Monticello files from a Squeak workspace:
>> 
>> MCCacheRepository default allFileNames select: [:each |
>>        [MCCacheRepository default versionInfoFromFileNamed: each.
>>        false] on: Error do: [true]].
>> 
>> See the attached SqueakDebug.log for details. Again, I would be very interested if others can reproduce that error.
>> 
>> All this makes me wonder if I can safely use that image?
>> 
>> Cheers,
>> Bernhard
> 


More information about the Squeak-dev mailing list