How to get a current clean 4.6 trunk image?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
bpi
Reply | Threaded
Open this post in threaded view
|

How to get a current clean 4.6 trunk image?

bpi
First I tried the way I normally use:

I downloaded the latest Squeak4.6-13700.zip from ftp://ftp.squeak.org/4.6alpha/ and opened it with Eliot's latest Cog VM (http://www.mirandabanda.org/files/Cog/VM/VM.r3056/Cog.app-14.29.3056.tgz).

I saw that the Kernel package is dirty. I did "Update Squeak".
First I got a warning "About to serialize an empty package". I proceeded.
Then I got a debugger with "Error: Bits size mismatch". See [1].
I tried with an empty package cache. However, the error stays the same.

Then, I tried Jenkins:

I downloaded http://build.squeak.org/job/SqueakTrunk/lastSuccessfulBuild/artifact/target/TrunkImage.zip and opened it.
I saw that the Environments package is dirty. The version name is (nice.47, cmm.51).
I could update that image to 13889. However, the Environments package stays dirty.

I hate to admit it, but I am stuck. ;-) Can some kind person help me? I am sure there is a way to get an up-to-date and clean trunk image!

Cheers,
Bernhard

[1]
--- The full stack ---
ZipWriteStream(Object)>>error:
ZipWriteStream>>flushBlock:
ZipWriteStream>>flushBlock
ZipWriteStream(DeflateStream)>>deflateBlock
ZipWriteStream(DeflateStream)>>next:putAll:startingAt:
ZipWriteStream(DeflateStream)>>nextPutAll:
ZipStringMember(ZipArchiveMember)>>compressDataTo:
ZipStringMember(ZipArchiveMember)>>writeDataTo:
ZipStringMember(ZipArchiveMember)>>writeTo:
[] in ZipArchive>>writeTo:
OrderedCollection>>do:
ZipArchive>>writeTo:
MCMczWriter>>flush
MCMczWriter class>>fileOut:on:
MCVersion>>fileOutOn:
[] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:replace:do:
MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do:
MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

Frank Shearar-3
On 4 August 2014 13:21, Bernhard Pieber <[hidden email]> wrote:

> First I tried the way I normally use:
>
> I downloaded the latest Squeak4.6-13700.zip from ftp://ftp.squeak.org/4.6alpha/ and opened it with Eliot's latest Cog VM (http://www.mirandabanda.org/files/Cog/VM/VM.r3056/Cog.app-14.29.3056.tgz).
>
> I saw that the Kernel package is dirty. I did "Update Squeak".
> First I got a warning "About to serialize an empty package". I proceeded.
> Then I got a debugger with "Error: Bits size mismatch". See [1].
> I tried with an empty package cache. However, the error stays the same.
>
> Then, I tried Jenkins:
>
> I downloaded http://build.squeak.org/job/SqueakTrunk/lastSuccessfulBuild/artifact/target/TrunkImage.zip and opened it.
> I saw that the Environments package is dirty. The version name is (nice.47, cmm.51).
> I could update that image to 13889. However, the Environments package stays dirty.

The Environments history looks a bit... forked. nice.47 comes from
ul.46 comes from cwp.45, while cmm.51 comes from cmm.50 comes from
cwp.49 comes from cwp.48 and so on.

> I hate to admit it, but I am stuck. ;-) Can some kind person help me? I am sure there is a way to get an up-to-date and clean trunk image!

It looks like, at the moment, that there _is_ no up-to-date AND clean
trunk image.

frank

Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

marcel.taeumel (old)
Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

Chris Muller-3
In reply to this post by bpi
You can take a 4.5 release image, change the update URL to trunk and update it..


On Mon, Aug 4, 2014 at 7:21 AM, Bernhard Pieber <[hidden email]> wrote:
First I tried the way I normally use:

I downloaded the latest Squeak4.6-13700.zip from ftp://ftp.squeak.org/4.6alpha/ and opened it with Eliot's latest Cog VM (http://www.mirandabanda.org/files/Cog/VM/VM.r3056/Cog.app-14.29.3056.tgz).

I saw that the Kernel package is dirty. I did "Update Squeak".
First I got a warning "About to serialize an empty package". I proceeded.
Then I got a debugger with "Error: Bits size mismatch". See [1].
I tried with an empty package cache. However, the error stays the same.

Then, I tried Jenkins:

I downloaded http://build.squeak.org/job/SqueakTrunk/lastSuccessfulBuild/artifact/target/TrunkImage.zip and opened it.
I saw that the Environments package is dirty. The version name is (nice.47, cmm.51).
I could update that image to 13889. However, the Environments package stays dirty.

I hate to admit it, but I am stuck. ;-) Can some kind person help me? I am sure there is a way to get an up-to-date and clean trunk image!

Cheers,
Bernhard

[1]
--- The full stack ---
ZipWriteStream(Object)>>error:
ZipWriteStream>>flushBlock:
ZipWriteStream>>flushBlock
ZipWriteStream(DeflateStream)>>deflateBlock
ZipWriteStream(DeflateStream)>>next:putAll:startingAt:
ZipWriteStream(DeflateStream)>>nextPutAll:
ZipStringMember(ZipArchiveMember)>>compressDataTo:
ZipStringMember(ZipArchiveMember)>>writeDataTo:
ZipStringMember(ZipArchiveMember)>>writeTo:
[] in ZipArchive>>writeTo:
OrderedCollection>>do:
ZipArchive>>writeTo:
MCMczWriter>>flush
MCMczWriter class>>fileOut:on:
MCVersion>>fileOutOn:
[] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:replace:do:
MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do:
MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



bpi
Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

bpi
Thanks for the quick responses! I am getting closer, thanks to Chris' suggestion.

I took Squeak4.5-13680.zip from ftp://ftp.squeak.org/4.5/ with all updates from squeak4.5 applied. That is update 13687.

Then I emptied the package-cache, changed the update URL to trunk and did "Update Squeak".

It updates to 13889. Package Environments is not dirty anymore. Its version number is (cmm.51, nice.47). Is that a problem or not? Shouldn't trunk packages always have exactly one version name?

However, package Morphic is now dirty. Its version name is (kfr.733, cmm.738). The patch browser shows only two changes.

Cheers,
Bernhard

Am 04.08.2014 um 16:03 schrieb Chris Muller <[hidden email]>:

> You can take a 4.5 release image, change the update URL to trunk and update it..
>
>
> On Mon, Aug 4, 2014 at 7:21 AM, Bernhard Pieber <[hidden email]> wrote:
> First I tried the way I normally use:
>
> I downloaded the latest Squeak4.6-13700.zip from ftp://ftp.squeak.org/4.6alpha/ and opened it with Eliot's latest Cog VM (http://www.mirandabanda.org/files/Cog/VM/VM.r3056/Cog.app-14.29.3056.tgz).
>
> I saw that the Kernel package is dirty. I did "Update Squeak".
> First I got a warning "About to serialize an empty package". I proceeded.
> Then I got a debugger with "Error: Bits size mismatch". See [1].
> I tried with an empty package cache. However, the error stays the same.
>
> Then, I tried Jenkins:
>
> I downloaded http://build.squeak.org/job/SqueakTrunk/lastSuccessfulBuild/artifact/target/TrunkImage.zip and opened it.
> I saw that the Environments package is dirty. The version name is (nice.47, cmm.51).
> I could update that image to 13889. However, the Environments package stays dirty.
>
> I hate to admit it, but I am stuck. ;-) Can some kind person help me? I am sure there is a way to get an up-to-date and clean trunk image!
>
> Cheers,
> Bernhard
>
> [1]
> --- The full stack ---
> ZipWriteStream(Object)>>error:
> ZipWriteStream>>flushBlock:
> ZipWriteStream>>flushBlock
> ZipWriteStream(DeflateStream)>>deflateBlock
> ZipWriteStream(DeflateStream)>>next:putAll:startingAt:
> ZipWriteStream(DeflateStream)>>nextPutAll:
> ZipStringMember(ZipArchiveMember)>>compressDataTo:
> ZipStringMember(ZipArchiveMember)>>writeDataTo:
> ZipStringMember(ZipArchiveMember)>>writeTo:
> [] in ZipArchive>>writeTo:
> OrderedCollection>>do:
> ZipArchive>>writeTo:
> MCMczWriter>>flush
> MCMczWriter class>>fileOut:on:
> MCVersion>>fileOutOn:
> [] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
> MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:replace:do:
> MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do:
> MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
>


Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

Chris Muller-3

On Mon, Aug 4, 2014 at 10:09 AM, Bernhard Pieber <[hidden email]> wrote:
Thanks for the quick responses! I am getting closer, thanks to Chris' suggestion.

I took Squeak4.5-13680.zip from ftp://ftp.squeak.org/4.5/ with all updates from squeak4.5 applied. That is update 13687.

Then I emptied the package-cache, changed the update URL to trunk and did "Update Squeak".

It updates to 13889. Package Environments is not dirty anymore. Its version number is (cmm.51, nice.47). Is that a problem or not? Shouldn't trunk packages always have exactly one version name?

Yes, they should.  Nicolas branched nice.47 off of ul.46 to fix the update stream.  Someone should probably resave Environments again, Nicolas?


However, package Morphic is now dirty. Its version name is (kfr.733, cmm.738). The patch browser shows only two changes.

Strange -- I could've sworn I merged Nicolas' changes.  I saved it again, this one should be cleared up.

 

Cheers,
Bernhard

Am 04.08.2014 um 16:03 schrieb Chris Muller <[hidden email]>:

> You can take a 4.5 release image, change the update URL to trunk and update it..
>
>
> On Mon, Aug 4, 2014 at 7:21 AM, Bernhard Pieber <[hidden email]> wrote:
> First I tried the way I normally use:
>
> I downloaded the latest Squeak4.6-13700.zip from ftp://ftp.squeak.org/4.6alpha/ and opened it with Eliot's latest Cog VM (http://www.mirandabanda.org/files/Cog/VM/VM.r3056/Cog.app-14.29.3056.tgz).
>
> I saw that the Kernel package is dirty. I did "Update Squeak".
> First I got a warning "About to serialize an empty package". I proceeded.
> Then I got a debugger with "Error: Bits size mismatch". See [1].
> I tried with an empty package cache. However, the error stays the same.
>
> Then, I tried Jenkins:
>
> I downloaded http://build.squeak.org/job/SqueakTrunk/lastSuccessfulBuild/artifact/target/TrunkImage.zip and opened it.
> I saw that the Environments package is dirty. The version name is (nice.47, cmm.51).
> I could update that image to 13889. However, the Environments package stays dirty.
>
> I hate to admit it, but I am stuck. ;-) Can some kind person help me? I am sure there is a way to get an up-to-date and clean trunk image!
>
> Cheers,
> Bernhard
>
> [1]
> --- The full stack ---
> ZipWriteStream(Object)>>error:
> ZipWriteStream>>flushBlock:
> ZipWriteStream>>flushBlock
> ZipWriteStream(DeflateStream)>>deflateBlock
> ZipWriteStream(DeflateStream)>>next:putAll:startingAt:
> ZipWriteStream(DeflateStream)>>nextPutAll:
> ZipStringMember(ZipArchiveMember)>>compressDataTo:
> ZipStringMember(ZipArchiveMember)>>writeDataTo:
> ZipStringMember(ZipArchiveMember)>>writeTo:
> [] in ZipArchive>>writeTo:
> OrderedCollection>>do:
> ZipArchive>>writeTo:
> MCMczWriter>>flush
> MCMczWriter class>>fileOut:on:
> MCVersion>>fileOutOn:
> [] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
> MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:replace:do:
> MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do:
> MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
>





Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

Nicolas Cellier



2014-08-04 20:40 GMT+02:00 Chris Muller <[hidden email]>:

On Mon, Aug 4, 2014 at 10:09 AM, Bernhard Pieber <[hidden email]> wrote:
Thanks for the quick responses! I am getting closer, thanks to Chris' suggestion.

I took Squeak4.5-13680.zip from ftp://ftp.squeak.org/4.5/ with all updates from squeak4.5 applied. That is update 13687.

Then I emptied the package-cache, changed the update URL to trunk and did "Update Squeak".

It updates to 13889. Package Environments is not dirty anymore. Its version number is (cmm.51, nice.47). Is that a problem or not? Shouldn't trunk packages always have exactly one version name?

Yes, they should.  Nicolas branched nice.47 off of ul.46 to fix the update stream.  Someone should probably resave Environments again, Nicolas?

Sorry, I don't remember exactly, but yes, i had to operate a few forks to make the update stream work again.
Generally I care to publish a merged package, but it may have happened that I forgot to do so.
Also merge can happen later depending on the ancestry of further published packages.
Anyway, I have no time to fix trunk now, I must fix my house first.
Maybe at the end of august.


 


However, package Morphic is now dirty. Its version name is (kfr.733, cmm.738). The patch browser shows only two changes.

Strange -- I could've sworn I merged Nicolas' changes.  I saved it again, this one should be cleared up.

 

Cheers,
Bernhard

Am 04.08.2014 um 16:03 schrieb Chris Muller <[hidden email]>:

> You can take a 4.5 release image, change the update URL to trunk and update it..
>
>
> On Mon, Aug 4, 2014 at 7:21 AM, Bernhard Pieber <[hidden email]> wrote:
> First I tried the way I normally use:
>
> I downloaded the latest Squeak4.6-13700.zip from ftp://ftp.squeak.org/4.6alpha/ and opened it with Eliot's latest Cog VM (http://www.mirandabanda.org/files/Cog/VM/VM.r3056/Cog.app-14.29.3056.tgz).
>
> I saw that the Kernel package is dirty. I did "Update Squeak".
> First I got a warning "About to serialize an empty package". I proceeded.
> Then I got a debugger with "Error: Bits size mismatch". See [1].
> I tried with an empty package cache. However, the error stays the same.
>
> Then, I tried Jenkins:
>
> I downloaded http://build.squeak.org/job/SqueakTrunk/lastSuccessfulBuild/artifact/target/TrunkImage.zip and opened it.
> I saw that the Environments package is dirty. The version name is (nice.47, cmm.51).
> I could update that image to 13889. However, the Environments package stays dirty.
>
> I hate to admit it, but I am stuck. ;-) Can some kind person help me? I am sure there is a way to get an up-to-date and clean trunk image!
>
> Cheers,
> Bernhard
>
> [1]
> --- The full stack ---
> ZipWriteStream(Object)>>error:
> ZipWriteStream>>flushBlock:
> ZipWriteStream>>flushBlock
> ZipWriteStream(DeflateStream)>>deflateBlock
> ZipWriteStream(DeflateStream)>>next:putAll:startingAt:
> ZipWriteStream(DeflateStream)>>nextPutAll:
> ZipStringMember(ZipArchiveMember)>>compressDataTo:
> ZipStringMember(ZipArchiveMember)>>writeDataTo:
> ZipStringMember(ZipArchiveMember)>>writeTo:
> [] in ZipArchive>>writeTo:
> OrderedCollection>>do:
> ZipArchive>>writeTo:
> MCMczWriter>>flush
> MCMczWriter class>>fileOut:on:
> MCVersion>>fileOutOn:
> [] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
> MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:replace:do:
> MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do:
> MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
>









bpi
Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

bpi
In reply to this post by Chris Muller-3
Thanks for the update, Chris!

I updated my 13899 image from yesterday and now have a fully up-to-date trunk image where none of the packages is marked as modified. Yay! (The Environments package has two ancestors, though.)

That's the good news. The bad news is that I cannot reproduce the process how I arrived there anymore. Although I try hard to do exactly the same as yesterday, I always run into the "Bits size mismatch" error in ZipWriteStream for the package version Morphic-cmm.730.

Go figure! ;-(

Cheers,
Bernhard

Am 04.08.2014 um 20:40 schrieb Chris Muller <[hidden email]>:

> On Mon, Aug 4, 2014 at 10:09 AM, Bernhard Pieber <[hidden email]> wrote:
> Thanks for the quick responses! I am getting closer, thanks to Chris' suggestion.
>
> I took Squeak4.5-13680.zip from ftp://ftp.squeak.org/4.5/ with all updates from squeak4.5 applied. That is update 13687.
>
> Then I emptied the package-cache, changed the update URL to trunk and did "Update Squeak".
>
> It updates to 13889. Package Environments is not dirty anymore. Its version number is (cmm.51, nice.47). Is that a problem or not? Shouldn't trunk packages always have exactly one version name?
>
> Yes, they should.  Nicolas branched nice.47 off of ul.46 to fix the update stream.  Someone should probably resave Environments again, Nicolas?
>
>
> However, package Morphic is now dirty. Its version name is (kfr.733, cmm.738). The patch browser shows only two changes.
>
> Strange -- I could've sworn I merged Nicolas' changes.  I saved it again, this one should be cleared up.


bpi
Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

bpi
I spent quite some time today to figure out how I managed to create my up-to-date and clean trunk image from the 4.5 release image yesterday.

So far I did not succeed. :-(

What I found out, though, is that the result of loading updates depends on the content of the package-cache. If it is empty it results in the „Error: Bits size mismatch“. If I close the debugger and load updates again I can update until the end. However, the package Environments (nice.46, cmm.51) is dirty. The result looks quite like the Jenkins TrunkImage.

What seems to happen is the following:
1. Some code is loaded which breaks mcz file writing.
2. That code is used to copy package versions from trunk to the package-cache.
3. Those mcz and mcd files seem to be corrupt. When you look at the version in a version inspector you get the infamous „Error: can't find EOCD position"

I used the following code to find the corrupt files:
MCCacheRepository default allFileNames select: [:each |
        [MCCacheRepository default versionInfoFromFileNamed: each.
        false] on: Error do: [ true]].

What if I preload the package-cache with the correct version of all corrupt files from trunk before I attempt to update?

I identified all corrupt versions, cleared the package-cache and preloaded it with the following code:

 #('Tools-eem.525.mcz' 'ShoutCore-ul.42.mcz' 'Tests-fbs.301.mcz' 'SUnit-fbs.100.mcz' 'KernelTests-eem.275.mcz' 'Monticello-eem.594.mcz' 'Collections-nice.574.mcz' 'System-eem.676.mcz' 'MorphicExtras-kfr.150.mcz' 'Tools-eem.524.mcz' 'Kernel-eem.859.mcz' 'CollectionsTests-eem.219.mcz' 'Multilingual-ul.199.mcz' 'Graphics-nice.295.mcz' 'Compression-nice.45.mcz' 'SystemReporter-dtl.23.mcz' 'Help-Squeak-Project-dtl.20.mcz' 'HelpSystem-Core-kfr.62.mcz' 'Tests-fbs.300.mcz' 'Monticello-eem.593.mcz' 'Collections-nice.572.mcz' 'MorphicExtras-kfr.149.mcz' 'Tools-eem.523.mcz' 'MonticelloConfigurations-eem.127.mcz' 'Kernel-eem.857.mcz' 'Compiler-eem.284.mcz' 'Multilingual-nice.198.mcz' 'Tests-nice.299.mcz' 'TraitsTests-nice.14.mcz' 'KernelTests-nice.271.mcz' 'Files-eem.136.mcz' 'Collections-eem.571.mcz' 'Tools-eem.522.mcz' 'Kernel-eem.854.mcz' 'Compiler-eem.283.mcz' 'CollectionsTests-nice.218.mcz' 'Multilingual-nice.196.mcz' 'Compression-nice.42.mcz' 'Kernel-eem.852.mcz' 'CommandLine-fbs.3.mcz' 'Kernel-eem.851.mcz' 'Morphic-cmm.730.mcz' 'Morphic-kfr.733.mcz' 'Morphic-kfr.729.mcz')
        do: [:each | MCRepository trunk versionNamed: each].

After this I can update the 4.5 release image to the last trunk update without a debugger and without creating any more corrupt Monticello files.

However, the package Environments (cmm.51, nice.47) is still dirty, i.e. when I select it, the trunk repository and click the Changes button it turns up a patch browser.

In the clean trunk image which I managed to create yesterday the package Environments (nice.47, cmm.51) is not dirty.

Note the different order of the same ancestors (cmm.51, nice.47) versus (nice.47, cmm.51). Does anyone have an idea, how that difference might have occurred?

Cheers,
Bernhard

Am 05.08.2014 um 11:32 schrieb Bernhard Pieber <[hidden email]>:

> Thanks for the update, Chris!
>
> I updated my 13899 image from yesterday and now have a fully up-to-date trunk image where none of the packages is marked as modified. Yay! (The Environments package has two ancestors, though.)
>
> That's the good news. The bad news is that I cannot reproduce the process how I arrived there anymore. Although I try hard to do exactly the same as yesterday, I always run into the "Bits size mismatch" error in ZipWriteStream for the package version Morphic-cmm.730.
>
> Go figure! ;-(
>
> Cheers,
> Bernhard
>
> Am 04.08.2014 um 20:40 schrieb Chris Muller <[hidden email]>:
>> On Mon, Aug 4, 2014 at 10:09 AM, Bernhard Pieber <[hidden email]> wrote:
>> Thanks for the quick responses! I am getting closer, thanks to Chris' suggestion.
>>
>> I took Squeak4.5-13680.zip from ftp://ftp.squeak.org/4.5/ with all updates from squeak4.5 applied. That is update 13687.
>>
>> Then I emptied the package-cache, changed the update URL to trunk and did "Update Squeak".
>>
>> It updates to 13889. Package Environments is not dirty anymore. Its version number is (cmm.51, nice.47). Is that a problem or not? Shouldn't trunk packages always have exactly one version name?
>>
>> Yes, they should.  Nicolas branched nice.47 off of ul.46 to fix the update stream.  Someone should probably resave Environments again, Nicolas?
>>
>>
>> However, package Morphic is now dirty. Its version name is (kfr.733, cmm.738). The patch browser shows only two changes.
>>
>> Strange -- I could've sworn I merged Nicolas' changes.  I saved it again, this one should be cleared up.
>


Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

Eliot Miranda-2
Hi Bernhard,


On Tue, Aug 5, 2014 at 10:26 AM, Bernhard Pieber <[hidden email]> wrote:
I spent quite some time today to figure out how I managed to create my up-to-date and clean trunk image from the 4.5 release image yesterday.

So far I did not succeed. :-(

What I found out, though, is that the result of loading updates depends on the content of the package-cache. If it is empty it results in the „Error: Bits size mismatch“. If I close the debugger and load updates again I can update until the end. However, the package Environments (nice.46, cmm.51) is dirty. The result looks quite like the Jenkins TrunkImage.

What seems to happen is the following:
1. Some code is loaded which breaks mcz file writing.
2. That code is used to copy package versions from trunk to the package-cache.
3. Those mcz and mcd files seem to be corrupt. When you look at the version in a version inspector you get the infamous „Error: can't find EOCD position"

I used the following code to find the corrupt files:
MCCacheRepository default allFileNames select: [:each |
        [MCCacheRepository default versionInfoFromFileNamed: each.
        false] on: Error do: [  true]].

What if I preload the package-cache with the correct version of all corrupt files from trunk before I attempt to update?

What OS are you running on? 

I don't know if this helps, but, at least on Mac OS X, my image build script from Cog works to the extent that only Environments and Monticello are marked dirty.  Note that Monticello is not actually dirty, and Environments is dirty because it has two ancestors, nice.47 & cmm.51 (as you report below).  You can find the script here:

                BuildSqueakTrunkImage.st    - the update script
                buildspurtrunkimage.sh          - the script that downloads Squeak-4.5-All-in-One, updates it to trunk, builds a VMMaker image, and uses that to convert the trunk image to Spur
 
"Change the update stream to trunk and update"
[MCMcmUpdater
        defaultUpdateURL: 'http://source.squeak.org/trunk';
        updateFromServer] valueSupplyingAnswer: true.

Smalltalk snapshot: true andQuit: true

The script has been tested on Mac and Linux.  The update process starts with an empty package cache.

I identified all corrupt versions, cleared the package-cache and preloaded it with the following code:

 #('Tools-eem.525.mcz' 'ShoutCore-ul.42.mcz' 'Tests-fbs.301.mcz' 'SUnit-fbs.100.mcz' 'KernelTests-eem.275.mcz' 'Monticello-eem.594.mcz' 'Collections-nice.574.mcz' 'System-eem.676.mcz' 'MorphicExtras-kfr.150.mcz' 'Tools-eem.524.mcz' 'Kernel-eem.859.mcz' 'CollectionsTests-eem.219.mcz' 'Multilingual-ul.199.mcz' 'Graphics-nice.295.mcz' 'Compression-nice.45.mcz' 'SystemReporter-dtl.23.mcz' 'Help-Squeak-Project-dtl.20.mcz' 'HelpSystem-Core-kfr.62.mcz' 'Tests-fbs.300.mcz' 'Monticello-eem.593.mcz' 'Collections-nice.572.mcz' 'MorphicExtras-kfr.149.mcz' 'Tools-eem.523.mcz' 'MonticelloConfigurations-eem.127.mcz' 'Kernel-eem.857.mcz' 'Compiler-eem.284.mcz' 'Multilingual-nice.198.mcz' 'Tests-nice.299.mcz' 'TraitsTests-nice.14.mcz' 'KernelTests-nice.271.mcz' 'Files-eem.136.mcz' 'Collections-eem.571.mcz' 'Tools-eem.522.mcz' 'Kernel-eem.854.mcz' 'Compiler-eem.283.mcz' 'CollectionsTests-nice.218.mcz' 'Multilingual-nice.196.mcz' 'Compression-nice.42.mcz' 'Kernel-eem.852.mcz' 'CommandLine-fbs.3.mcz' 'Kernel-eem.851.mcz' 'Morphic-cmm.730.mcz' 'Morphic-kfr.733.mcz' 'Morphic-kfr.729.mcz')
        do: [:each | MCRepository trunk versionNamed: each].

After this I can update the 4.5 release image to the last trunk update without a debugger and without creating any more corrupt Monticello files.

However, the package Environments (cmm.51, nice.47) is still dirty, i.e. when I select it, the trunk repository and click the Changes button it turns up a patch browser.

In the clean trunk image which I managed to create yesterday the package Environments (nice.47, cmm.51) is not dirty.

Note the different order of the same ancestors (cmm.51, nice.47) versus (nice.47, cmm.51). Does anyone have an idea, how that difference might have occurred?

Cheers,
Bernhard

Am 05.08.2014 um 11:32 schrieb Bernhard Pieber <[hidden email]>:
> Thanks for the update, Chris!
>
> I updated my 13899 image from yesterday and now have a fully up-to-date trunk image where none of the packages is marked as modified. Yay! (The Environments package has two ancestors, though.)
>
> That's the good news. The bad news is that I cannot reproduce the process how I arrived there anymore. Although I try hard to do exactly the same as yesterday, I always run into the "Bits size mismatch" error in ZipWriteStream for the package version Morphic-cmm.730.
>
> Go figure! ;-(
>
> Cheers,
> Bernhard
>
> Am 04.08.2014 um 20:40 schrieb Chris Muller <[hidden email]>:
>> On Mon, Aug 4, 2014 at 10:09 AM, Bernhard Pieber <[hidden email]> wrote:
>> Thanks for the quick responses! I am getting closer, thanks to Chris' suggestion.
>>
>> I took Squeak4.5-13680.zip from ftp://ftp.squeak.org/4.5/ with all updates from squeak4.5 applied. That is update 13687.
>>
>> Then I emptied the package-cache, changed the update URL to trunk and did "Update Squeak".
>>
>> It updates to 13889. Package Environments is not dirty anymore. Its version number is (cmm.51, nice.47). Is that a problem or not? Shouldn't trunk packages always have exactly one version name?
>>
>> Yes, they should.  Nicolas branched nice.47 off of ul.46 to fix the update stream.  Someone should probably resave Environments again, Nicolas?
>>
>>
>> However, package Morphic is now dirty. Its version name is (kfr.733, cmm.738). The patch browser shows only two changes.
>>
>> Strange -- I could've sworn I merged Nicolas' changes.  I saved it again, this one should be cleared up.
>





--
best,
Eliot


bpi
Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

bpi
Hi Eliot,

Thanks for your help. See below:

Am 05.08.2014 um 20:05 schrieb Eliot Miranda <[hidden email]>:
> Hi Bernhard,
>
> What OS are you running on?
I am on OS X 10.9.4.

> I don't know if this helps, but, at least on Mac OS X, my image build script from Cog works to the extent that only Environments and Monticello are marked dirty.  Note that Monticello is not actually dirty, and Environments is dirty because it has two ancestors, nice.47 & cmm.51 (as you report below).  You can find the script here:
>
>         http://www.squeakvm.org/svn/squeak/branches/Cog/image/
>                 BuildSqueakTrunkImage.st    - the update script
>                 buildspurtrunkimage.sh          - the script that downloads Squeak-4.5-All-in-One, updates it to trunk, builds a VMMaker image, and uses that to convert the trunk image to Spur
>  
> "Change the update stream to trunk and update"
> [MCMcmUpdater
>         defaultUpdateURL: 'http://source.squeak.org/trunk';
>         updateFromServer] valueSupplyingAnswer: true.
>
> Smalltalk snapshot: true andQuit: true
>
> The script has been tested on Mac and Linux.  The update process starts with an empty package cache.
I just tried your script in a Squeak4.5-13680.image starting with an empty package-cache. That is the image you use, if I interpret http://www.squeakvm.org/svn/squeak/branches/Cog/image/envvars.sh correctly, right?

It results in "Error: Bits size mismatch" when trying to add Morphic-cmm.730.mcz to the cache. Does it currently work for you?

Cheers,
Bernhard
Reply | Threaded
Open this post in threaded view
|

Re: How to get a current clean 4.6 trunk image?

Eliot Miranda-2
oops, didn't see you question...


On Sat, Aug 23, 2014 at 9:09 PM, Bernhard Pieber <[hidden email]> wrote:
Hi Eliot,

Thanks for your help. See below:

Am 05.08.2014 um 20:05 schrieb Eliot Miranda <[hidden email]>:
> Hi Bernhard,
>
> What OS are you running on?
I am on OS X 10.9.4.

> I don't know if this helps, but, at least on Mac OS X, my image build script from Cog works to the extent that only Environments and Monticello are marked dirty.  Note that Monticello is not actually dirty, and Environments is dirty because it has two ancestors, nice.47 & cmm.51 (as you report below).  You can find the script here:
>
>         http://www.squeakvm.org/svn/squeak/branches/Cog/image/
>                 BuildSqueakTrunkImage.st    - the update script
>                 buildspurtrunkimage.sh          - the script that downloads Squeak-4.5-All-in-One, updates it to trunk, builds a VMMaker image, and uses that to convert the trunk image to Spur
>
> "Change the update stream to trunk and update"
> [MCMcmUpdater
>         defaultUpdateURL: 'http://source.squeak.org/trunk';
>         updateFromServer] valueSupplyingAnswer: true.
>
> Smalltalk snapshot: true andQuit: true
>
> The script has been tested on Mac and Linux.  The update process starts with an empty package cache.
I just tried your script in a Squeak4.5-13680.image starting with an empty package-cache. That is the image you use, if I interpret http://www.squeakvm.org/svn/squeak/branches/Cog/image/envvars.sh correctly, right?

yes.
 

It results in "Error: Bits size mismatch" when trying to add Morphic-cmm.730.mcz to the cache. Does it currently work for you?

Cheers,
Bernhard



--
best,
Eliot