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

Chris Muller asqueaker at gmail.com
Sun Aug 31 22:48:46 UTC 2014


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?

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