ZipArchive: "Error: can't find EOCD position" (trunk)

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

ZipArchive: "Error: can't find EOCD position" (trunk)

marcel.taeumel (old)
Hey guys---

Just wanted to make my first trunk commit. :) I downloaded the Squeak 4.6alpha and updated it. I made some changes. I tried to commit... *bam* Seems to me that somehow the zip archives are written brokenly (to disk). I inspected the package-cache and found many broken *.mcd files there (e.g. Kernel-eem.859(eem.857).mcd).

Now I'm a little bit sad. :'(

Best,
Marcel ;)
Reply | Threaded
Open this post in threaded view
|

Re: ZipArchive: "Error: can't find EOCD position" (trunk)

David T. Lewis
On Thu, Jul 24, 2014 at 01:00:00AM -0700, Marcel Taeumel wrote:

> Hey guys---
>
> Just wanted to make my first trunk commit. :) I downloaded the Squeak
> 4.6alpha and updated it. I made some changes. I tried to commit... *bam*
> Seems to me that somehow the zip archives are written brokenly (to disk). I
> inspected the package-cache and found many broken *.mcd files there (e.g.
> Kernel-eem.859(eem.857).mcd).
>
> Now I'm a little bit sad. :'(
>
> Best,
> Marcel ;)

That is the famously unhelpful error message from ZipArchive>>readFrom:
that means, loosely translated: "Something bad happened while trying to
uncompress your MCZ, probably because of a network problem or a corrupt
zip file. But I'm not going to tell you what the problem was, because you
are probably much more interested in googling around to try to figure
out what an EOCD is".

;-)

Dave

Reply | Threaded
Open this post in threaded view
|

Re: ZipArchive: "Error: can't find EOCD position" (trunk)

marcel.taeumel (old)
Okay, I'll try it again. :) If I update build 13700, there is a warning for "update-cwp.278.mcm" that says: "About to serialize an empty package.". I just proceed.

...okay, update finished at build 13871. Changed the code again (i.e. something in StringHolder) and want to commit the changes based on the Kernel-nice.860 package. Then I get a new error from ZipWriteStream "Bite size mismatch" in #flushBlock:.

Here is more:

From: foobar
To: squeak-dev@lists.squeakfoundation.org
Subject: [BUG]ZipWriteStream(Object)>>error:

here insert explanation of what you were doing, suspect changes you've made and so forth.

25 July 2014 9:31:32.72 am

VM: Win32 - Smalltalk
Image: Squeak4.6 [latest update: #13871]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir C:\Tools\squeak_trunk
Trusted Dir C:\Tools\squeak_trunk\Marcel
Untrusted Dir C:\Users\Marcel\Documents\My Squeak

ZipWriteStream(Object)>>error:
        Receiver: a ZipWriteStream
        Arguments and temporary variables:
                aString: 'Bits size mismatch'
        Receiver's instance variables:
                collection: #[101 32 116 111 32 114 101 115 116 111 114 101 32 116 104 105 115 ...etc...
                position: 65536
                readLimit: 0
                writeLimit: 65536
                initialPositionOrNil: nil
                hashHead: a WordArray(0 0 0 0 4371 29332 24620 18723 0 12242 0 0 0 0 0 36691 21...etc...
                hashTail: a WordArray(0 31707 32496 32497 32498 32499 32500 32593 32512 75 2323...etc...
                hashValue: 176
                blockPosition: 39528
                blockStart: -98304
                literals: #[40 110 97 109 101 32 39 75 101 114 110 101 108 45 109 116 46 56 54 ...etc...
                distances: a WordArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
                literalFreq: a WordArray(0 0 0 0 0 0 0 0 0 14 0 0 0 257 0 0 0 0 0 0 0 0 0 0 0 0...etc...
                distanceFreq: a WordArray(5 0 8 9 18 12 41 49 107 118 181 158 200 160 368 461 4...etc...
                litCount: 32768
                matchCount: 15220
                encoder: a ZipEncoder
                crc: 4079655398
                crcPosition: 32769
                bytesWritten: 131072

ZipWriteStream>>flushBlock:
        Receiver: a ZipWriteStream
        Arguments and temporary variables:
                lastBlock: false
                lastFlag: 0
                bitsRequired: 402860
                method: #dynamic
                bitsSent: 728
                storedLength: 1102696
                fixedLength: 479399
                dynamicLength: 402860
                blTree: a ZipEncoderTree
                lTree: a ZipEncoderTree
                dTree: a ZipEncoderTree
                blBits: a WordArray(0 0 0 0 0 0 0 0 0 11 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
                blFreq: a WordArray(4 0 0 4 6 7 11 15 12 19 17 8 12 10 9 6 5 6 4)
        Receiver's instance variables:
                collection: #[101 32 116 111 32 114 101 115 116 111 114 101 32 116 104 105 115 ...etc...
                position: 65536
                readLimit: 0
                writeLimit: 65536
                initialPositionOrNil: nil
                hashHead: a WordArray(0 0 0 0 4371 29332 24620 18723 0 12242 0 0 0 0 0 36691 21...etc...
                hashTail: a WordArray(0 31707 32496 32497 32498 32499 32500 32593 32512 75 2323...etc...
                hashValue: 176
                blockPosition: 39528
                blockStart: -98304
                literals: #[40 110 97 109 101 32 39 75 101 114 110 101 108 45 109 116 46 56 54 ...etc...
                distances: a WordArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
                literalFreq: a WordArray(0 0 0 0 0 0 0 0 0 14 0 0 0 257 0 0 0 0 0 0 0 0 0 0 0 0...etc...
                distanceFreq: a WordArray(5 0 8 9 18 12 41 49 107 118 181 158 200 160 368 461 4...etc...
                litCount: 32768
                matchCount: 15220
                encoder: a ZipEncoder
                crc: 4079655398
                crcPosition: 32769
                bytesWritten: 131072

ZipWriteStream>>flushBlock
        Receiver: a ZipWriteStream
        Arguments and temporary variables:

        Receiver's instance variables:
                collection: #[101 32 116 111 32 114 101 115 116 111 114 101 32 116 104 105 115 ...etc...
                position: 65536
                readLimit: 0
                writeLimit: 65536
                initialPositionOrNil: nil
                hashHead: a WordArray(0 0 0 0 4371 29332 24620 18723 0 12242 0 0 0 0 0 36691 21...etc...
                hashTail: a WordArray(0 31707 32496 32497 32498 32499 32500 32593 32512 75 2323...etc...
                hashValue: 176
                blockPosition: 39528
                blockStart: -98304
                literals: #[40 110 97 109 101 32 39 75 101 114 110 101 108 45 109 116 46 56 54 ...etc...
                distances: a WordArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
                literalFreq: a WordArray(0 0 0 0 0 0 0 0 0 14 0 0 0 257 0 0 0 0 0 0 0 0 0 0 0 0...etc...
                distanceFreq: a WordArray(5 0 8 9 18 12 41 49 107 118 181 158 200 160 368 461 4...etc...
                litCount: 32768
                matchCount: 15220
                encoder: a ZipEncoder
                crc: 4079655398
                crcPosition: 32769
                bytesWritten: 131072

ZipWriteStream(DeflateStream)>>deflateBlock
        Receiver: a ZipWriteStream
        Arguments and temporary variables:
                flushNeeded: true
                lastIndex: 65278
                i: nil
                iLimiT: nil
        Receiver's instance variables:
                collection: #[101 32 116 111 32 114 101 115 116 111 114 101 32 116 104 105 115 ...etc...
                position: 65536
                readLimit: 0
                writeLimit: 65536
                initialPositionOrNil: nil
                hashHead: a WordArray(0 0 0 0 4371 29332 24620 18723 0 12242 0 0 0 0 0 36691 21...etc...
                hashTail: a WordArray(0 31707 32496 32497 32498 32499 32500 32593 32512 75 2323...etc...
                hashValue: 176
                blockPosition: 39528
                blockStart: -98304
                literals: #[40 110 97 109 101 32 39 75 101 114 110 101 108 45 109 116 46 56 54 ...etc...
                distances: a WordArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
                literalFreq: a WordArray(0 0 0 0 0 0 0 0 0 14 0 0 0 257 0 0 0 0 0 0 0 0 0 0 0 0...etc...
                distanceFreq: a WordArray(5 0 8 9 18 12 41 49 107 118 181 158 200 160 368 461 4...etc...
                litCount: 32768
                matchCount: 15220
                encoder: a ZipEncoder
                crc: 4079655398
                crcPosition: 32769
                bytesWritten: 131072

ZipWriteStream(DeflateStream)>>next:putAll:startingAt:
        Receiver: a ZipWriteStream
        Arguments and temporary variables:
                bytesCount: 4096
                aCollection: #[116 111 32 100 105 115 112 108 97 121 32 102 114 97 99 116 105 1...etc...
                startIndex: 1
                start: 1
                count: 4096
                max: nil
                i: nil
                iLimiT: nil
        Receiver's instance variables:
                collection: #[101 32 116 111 32 114 101 115 116 111 114 101 32 116 104 105 115 ...etc...
                position: 65536
                readLimit: 0
                writeLimit: 65536
                initialPositionOrNil: nil
                hashHead: a WordArray(0 0 0 0 4371 29332 24620 18723 0 12242 0 0 0 0 0 36691 21...etc...
                hashTail: a WordArray(0 31707 32496 32497 32498 32499 32500 32593 32512 75 2323...etc...
                hashValue: 176
                blockPosition: 39528
                blockStart: -98304
                literals: #[40 110 97 109 101 32 39 75 101 114 110 101 108 45 109 116 46 56 54 ...etc...
                distances: a WordArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
                literalFreq: a WordArray(0 0 0 0 0 0 0 0 0 14 0 0 0 257 0 0 0 0 0 0 0 0 0 0 0 0...etc...
                distanceFreq: a WordArray(5 0 8 9 18 12 41 49 107 118 181 158 200 160 368 461 4...etc...
                litCount: 32768
                matchCount: 15220
                encoder: a ZipEncoder
                crc: 4079655398
                crcPosition: 32769
                bytesWritten: 131072

ZipWriteStream(DeflateStream)>>nextPutAll:
        Receiver: a ZipWriteStream
        Arguments and temporary variables:
                aCollection: #[116 111 32 100 105 115 112 108 97 121 32 102 114 97 99 116 105 1...etc...
        Receiver's instance variables:
                collection: #[101 32 116 111 32 114 101 115 116 111 114 101 32 116 104 105 115 ...etc...
                position: 65536
                readLimit: 0
                writeLimit: 65536
                initialPositionOrNil: nil
                hashHead: a WordArray(0 0 0 0 4371 29332 24620 18723 0 12242 0 0 0 0 0 36691 21...etc...
                hashTail: a WordArray(0 31707 32496 32497 32498 32499 32500 32593 32512 75 2323...etc...
                hashValue: 176
                blockPosition: 39528
                blockStart: -98304
                literals: #[40 110 97 109 101 32 39 75 101 114 110 101 108 45 109 116 46 56 54 ...etc...
                distances: a WordArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
                literalFreq: a WordArray(0 0 0 0 0 0 0 0 0 14 0 0 0 257 0 0 0 0 0 0 0 0 0 0 0 0...etc...
                distanceFreq: a WordArray(5 0 8 9 18 12 41 49 107 118 181 158 200 160 368 461 4...etc...
                litCount: 32768
                matchCount: 15220
                encoder: a ZipEncoder
                crc: 4079655398
                crcPosition: 32769
                bytesWritten: 131072

ZipStringMember(ZipArchiveMember)>>compressDataTo:
        Receiver: a ZipStringMember(version)
        Arguments and temporary variables:
                aStream: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.86...etc...
                encoder: a ZipWriteStream
                startPos: 91
                endPos: nil
                data: 'to display fractional seconds for better compatibility with the original...etc...
        Receiver's instance variables:
                fileName: 'version'
                isCorrupt: false
                lastModFileDateTime: 1157188455
                fileAttributeFormat: 3
                versionMadeBy: 20
                versionNeededToExtract: 20
                bitFlag: 0
                compressionMethod: 0
                desiredCompressionMethod: 8
                desiredCompressionLevel: 6
                internalFileAttributes: 0
                externalFileAttributes: 2176188416
                cdExtraField: ''
                localExtraField: ''
                fileComment: ''
                crc32: 0
                compressedSize: 292527
                uncompressedSize: 292527
                writeLocalHeaderRelativeOffset: 54
                readDataRemaining: 128687
                contents: '(name ''Kernel-mt.861'' message ''made "window active on first click...etc...
                stream: a ReadStream

ZipStringMember(ZipArchiveMember)>>writeDataTo:
        Receiver: a ZipStringMember(version)
        Arguments and temporary variables:
                aStream: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.86...etc...
        Receiver's instance variables:
                fileName: 'version'
                isCorrupt: false
                lastModFileDateTime: 1157188455
                fileAttributeFormat: 3
                versionMadeBy: 20
                versionNeededToExtract: 20
                bitFlag: 0
                compressionMethod: 0
                desiredCompressionMethod: 8
                desiredCompressionLevel: 6
                internalFileAttributes: 0
                externalFileAttributes: 2176188416
                cdExtraField: ''
                localExtraField: ''
                fileComment: ''
                crc32: 0
                compressedSize: 292527
                uncompressedSize: 292527
                writeLocalHeaderRelativeOffset: 54
                readDataRemaining: 128687
                contents: '(name ''Kernel-mt.861'' message ''made "window active on first click...etc...
                stream: a ReadStream

ZipStringMember(ZipArchiveMember)>>writeTo:
        Receiver: a ZipStringMember(version)
        Arguments and temporary variables:
                aStream: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.86...etc...
        Receiver's instance variables:
                fileName: 'version'
                isCorrupt: false
                lastModFileDateTime: 1157188455
                fileAttributeFormat: 3
                versionMadeBy: 20
                versionNeededToExtract: 20
                bitFlag: 0
                compressionMethod: 0
                desiredCompressionMethod: 8
                desiredCompressionLevel: 6
                internalFileAttributes: 0
                externalFileAttributes: 2176188416
                cdExtraField: ''
                localExtraField: ''
                fileComment: ''
                crc32: 0
                compressedSize: 292527
                uncompressedSize: 292527
                writeLocalHeaderRelativeOffset: 54
                readDataRemaining: 128687
                contents: '(name ''Kernel-mt.861'' message ''made "window active on first click...etc...
                stream: a ReadStream

[] in ZipArchive>>writeTo:
        Receiver: a ZipArchive
        Arguments and temporary variables:
                stream: a ZipStringMember(version)
                member: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.861...etc...
        Receiver's instance variables:
                members: an OrderedCollection(a ZipStringMember(package) a ZipStringMember(vers...etc...
                centralDirectorySize: nil
                centralDirectoryOffsetWRTStartingDiskNumber: nil
                zipFileComment: ''
                writeCentralDirectoryOffset: 0
                writeEOCDOffset: 0

OrderedCollection>>do:
        Receiver: an OrderedCollection(a ZipStringMember(package) a ZipStringMember(version) a ZipStringMemb...etc...
        Arguments and temporary variables:
                aBlock: [closure] in ZipArchive>>writeTo:
                index: 2
        Receiver's instance variables:
                array: {a ZipStringMember(package) . a ZipStringMember(version) . a ZipStringMe...etc...
                firstIndex: 1
                lastIndex: 4

ZipArchive>>writeTo:
        Receiver: a ZipArchive
        Arguments and temporary variables:
                stream: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.861...etc...
        Receiver's instance variables:
                members: an OrderedCollection(a ZipStringMember(package) a ZipStringMember(vers...etc...
                centralDirectorySize: nil
                centralDirectoryOffsetWRTStartingDiskNumber: nil
                zipFileComment: ''
                writeCentralDirectoryOffset: 0
                writeEOCDOffset: 0

MCMczWriter>>flush
        Receiver: a MCMczWriter
        Arguments and temporary variables:

        Receiver's instance variables:
                stream: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.861...etc...
                zip: a ZipArchive
                infoWriter: a MCVersionInfoWriter

MCMczWriter class>>fileOut:on:
        Receiver: MCMczWriter
        Arguments and temporary variables:
                aVersion: a MCVersion(Kernel-mt.861)
                aStream: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.86...etc...
                inst: a MCMczWriter
        Receiver's instance variables:
                superclass: MCWriter
                methodDict: a MethodDictionary(#addString:at:->(MCMczWriter>>#addString:at: "a ...etc...
                format: 136
                instanceVariables: #('zip' 'infoWriter')
                organization: ('accessing' format snapshotWriterClass zip)
('initializing' init...etc...
                subclasses: {MCMcdWriter}
                name: #MCMczWriter
                classPool: nil
                sharedPools: nil
                environment: Smalltalk
                category: #'Monticello-Storing'

MCVersion>>fileOutOn:
        Receiver: a MCVersion(Kernel-mt.861)
        Arguments and temporary variables:
                aStream: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.86...etc...
        Receiver's instance variables:
                package: a MCPackage(Kernel)
                info: a MCVersionInfo(Kernel-mt.861)
                snapshot: a MCSnapshot
                dependencies: an OrderedCollection()

[] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
        Receiver: a MCCacheRepository(C:\Tools\squeak_trunk\package-cache)
        Arguments and temporary variables:
                aMCVersionOrConfiguration: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-...etc...
                s: a MCVersion(Kernel-mt.861)
        Receiver's instance variables:
                creationTemplate: nil
                storeDiffs: nil
                cache: a Dictionary()
                allFileNamesCache: nil
                allVersionNamesCache: nil
                directory: DosFileDirectory on 'C:\Tools\squeak_trunk\package-cache'
                packageCaches: nil
                seenFiles: nil

MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:replace:do:
        Receiver: a MCCacheRepository(C:\Tools\squeak_trunk\package-cache)
        Arguments and temporary variables:
                aString: 'Kernel-mt.861.mcz'
                aBoolean: false
                aBlock: [closure] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersio...etc...
                file: MultiByteFileStream: 'C:\Tools\squeak_trunk\package-cache\Kernel-mt.861.m...etc...
                sel: #newFileNamed:
        Receiver's instance variables:
                creationTemplate: nil
                storeDiffs: nil
                cache: a Dictionary()
                allFileNamesCache: nil
                allVersionNamesCache: nil
                directory: DosFileDirectory on 'C:\Tools\squeak_trunk\package-cache'
                packageCaches: nil
                seenFiles: nil

MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do:
        Receiver: a MCCacheRepository(C:\Tools\squeak_trunk\package-cache)
        Arguments and temporary variables:
                aString: 'Kernel-mt.861.mcz'
                aBlock: [closure] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersio...etc...
        Receiver's instance variables:
                creationTemplate: nil
                storeDiffs: nil
                cache: a Dictionary()
                allFileNamesCache: nil
                allVersionNamesCache: nil
                directory: DosFileDirectory on 'C:\Tools\squeak_trunk\package-cache'
                packageCaches: nil
                seenFiles: nil

MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion:
        Receiver: a MCCacheRepository(C:\Tools\squeak_trunk\package-cache)
        Arguments and temporary variables:
                aMCVersionOrConfiguration: a MCVersion(Kernel-mt.861)
        Receiver's instance variables:
                creationTemplate: nil
                storeDiffs: nil
                cache: a Dictionary()
                allFileNamesCache: nil
                allVersionNamesCache: nil
                directory: DosFileDirectory on 'C:\Tools\squeak_trunk\package-cache'
                packageCaches: nil
                seenFiles: nil


--- 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:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MCCacheRepository>>basicStoreVersion:
MCCacheRepository(MCRepository)>>storeVersion:
MCVersion>>addToCache
MCVersion>>initializeWithPackage:info:snapshot:dependencies:
MCVersion class>>package:info:snapshot:dependencies:
MCWorkingCopy>>newVersionWithName:message:
MCWorkingCopy>>newVersion
MCWorkingCopyBrowser>>saveVersion
PluggableButtonMorphPlus(PluggableButtonMorph)>>performAction
PluggableButtonMorphPlus>>performAction
[] in PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp:
PluggableButtonMorphPlus>>mouseUp:
PluggableButtonMorphPlus(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableButtonMorphPlus(Morph)>>handleEvent:
PluggableButtonMorphPlus(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess

Best,
Marcel
Reply | Threaded
Open this post in threaded view
|

Re: ZipArchive: "Error: can't find EOCD position" (trunk)

marcel.taeumel (old)
Speaking of strange observations in the trunk image: What are those two directories?

Trusted Dir C:\Tools\squeak_trunk\Marcel
Untrusted Dir C:\Users\Marcel\Documents\My Squeak

Those are listed in the system reporter. Both leaf folders do *not* exist.

Best,
Marcel
Reply | Threaded
Open this post in threaded view
|

Re: ZipArchive: "Error: can't find EOCD position" (trunk)

David T. Lewis
On Fri, Jul 25, 2014 at 12:34:24AM -0700, Marcel Taeumel wrote:
> Speaking of strange observations in the trunk image: What are those two
> directories?
>
> Trusted Dir C:\Tools\squeak_trunk\Marcel
> Untrusted Dir C:\Users\Marcel\Documents\My Squeak
>
> Those are listed in the system reporter. Both leaf folders do *not* exist.
>

The "My Squeak" folder is something related to Etoys. I do not see any references
to it in the image, aside from a class comment in EToysLauncher. But I am running
on Linux, so maybe I am missing something that shows up on your Windows platform?

Dave


Reply | Threaded
Open this post in threaded view
|

Re: ZipArchive: "Error: can't find EOCD position" (trunk)

David T. Lewis
In reply to this post by marcel.taeumel (old)
On Fri, Jul 25, 2014 at 12:32:20AM -0700, Marcel Taeumel wrote:
> Okay, I'll try it again. :) If I update build 13700, there is a warning for
> "update-cwp.278.mcm" that says: "About to serialize an empty package.". I
> just proceed.
>
> ...okay, update finished at build 13871. Changed the code again (i.e.
> something in StringHolder) and want to commit the changes based on the
> Kernel-nice.860 package. Then I get a new error from ZipWriteStream "Bite
> size mismatch" in #flushBlock:.
>

The only thing I can suggest is to empty your package-cache directory
completely, then try again. I am guessing that there may be a damaged
MCZ file in your local package-cache directory.

Dave


Reply | Threaded
Open this post in threaded view
|

Sandboxing (was: ZipArchive: "Error: can't find EOCD position")

Bert Freudenberg
In reply to this post by David T. Lewis
On 25.07.2014, at 12:48, David T. Lewis <[hidden email]> wrote:

> On Fri, Jul 25, 2014 at 12:34:24AM -0700, Marcel Taeumel wrote:
>> Speaking of strange observations in the trunk image: What are those two
>> directories?
>>
>> Trusted Dir C:\Tools\squeak_trunk\Marcel
>> Untrusted Dir C:\Users\Marcel\Documents\My Squeak
>>
>> Those are listed in the system reporter. Both leaf folders do *not* exist.
>>
>
> The "My Squeak" folder is something related to Etoys. I do not see any references
> to it in the image, aside from a class comment in EToysLauncher. But I am running
> on Linux, so maybe I am missing something that shows up on your Windows platform?
>
> Dave
This comes from the SecurityPlugin which implements file sandboxing. In most images it is unused (although it would make a lot of sense, especially in servers). Etoys uses it because it regularly executes untrusted code (projects authored by other users, which can contain arbitrary Squeak code).

The actual folder is provided by the VM settings (Squeak.ini on Windows, Info.plist on Mac OS, env vars on Unix):

        SecurityManager default secureUserDirectory
        ==> '/Users/bert/Library/Application Support/Etoys'

This is a folder inaccessible by untrusted content. Contains preferences and private crypto keys in Etoys.

        SecurityManager default untrustedUserDirectory
        ==> '/Users/bert/Documents/Etoys'

This is the sandbox folder, the only folder accessible by untrusted code. Before executing any untrusted (unsigned) code, the VM sandbox is enabled which prevents all file primitives from accessing anything outside this folder. Once enabled, there is no way to disable the sandbox again. Only on the next start will it be disabled.

- Bert -




smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Sandboxing

Ben Coman
Bert Freudenberg wrote:
On 25.07.2014, at 12:48, David T. Lewis [hidden email] wrote:

  
On Fri, Jul 25, 2014 at 12:34:24AM -0700, Marcel Taeumel wrote:
    
Speaking of strange observations in the trunk image: What are those two
directories?

Trusted Dir C:\Tools\squeak_trunk\Marcel
Untrusted Dir C:\Users\Marcel\Documents\My Squeak 

Those are listed in the system reporter. Both leaf folders do *not* exist.

      
The "My Squeak" folder is something related to Etoys. I do not see any references
to it in the image, aside from a class comment in EToysLauncher. But I am running
on Linux, so maybe I am missing something that shows up on your Windows platform?

Dave
    

This comes from the SecurityPlugin which implements file sandboxing. In most images it is unused (although it would make a lot of sense, especially in servers). Etoys uses it because it regularly executes untrusted code (projects authored by other users, which can contain arbitrary Squeak code).

The actual folder is provided by the VM settings (Squeak.ini on Windows, Info.plist on Mac OS, env vars on Unix):

	SecurityManager default secureUserDirectory
	==> '/Users/bert/Library/Application Support/Etoys'

This is a folder inaccessible by untrusted content. Contains preferences and private crypto keys in Etoys.

	SecurityManager default untrustedUserDirectory 
	==> '/Users/bert/Documents/Etoys'

This is the sandbox folder, the only folder accessible by untrusted code. Before executing any untrusted (unsigned) code, the VM sandbox is enabled which prevents all file primitives from accessing anything outside this folder. Once enabled, there is no way to disable the sandbox again. Only on the next start will it be disabled.

- Bert -

  

This is interesting. How is the code signing done ?
cheers -ben


Reply | Threaded
Open this post in threaded view
|

Re: ZipArchive: "Error: can't find EOCD position" (trunk)

marcel.taeumel (old)
In reply to this post by David T. Lewis
Did that several times now. :-/ I am using the latest non-spur CogVM (cogwin-14.29.3056.zip). I also tried to commit the "Morphic" package into a local directory. Same error.

I wonder if it is just me and how other trunk developers commit new code. :)

Best,
Marcel
Reply | Threaded
Open this post in threaded view
|

Re: Sandboxing

Bert Freudenberg
In reply to this post by Ben Coman

On 25.07.2014, at 17:01, Ben Coman <[hidden email]> wrote:

Bert Freudenberg wrote:
On 25.07.2014, at 12:48, David T. Lewis [hidden email] wrote:

  
On Fri, Jul 25, 2014 at 12:34:24AM -0700, Marcel Taeumel wrote:
    
Speaking of strange observations in the trunk image: What are those two
directories?

Trusted Dir C:\Tools\squeak_trunk\Marcel
Untrusted Dir C:\Users\Marcel\Documents\My Squeak 

Those are listed in the system reporter. Both leaf folders do *not* exist.

      
The "My Squeak" folder is something related to Etoys. I do not see any references
to it in the image, aside from a class comment in EToysLauncher. But I am running
on Linux, so maybe I am missing something that shows up on your Windows platform?

Dave
    

This comes from the SecurityPlugin which implements file sandboxing. In most images it is unused (although it would make a lot of sense, especially in servers). Etoys uses it because it regularly executes untrusted code (projects authored by other users, which can contain arbitrary Squeak code).

The actual folder is provided by the VM settings (Squeak.ini on Windows, Info.plist on Mac OS, env vars on Unix):

	SecurityManager default secureUserDirectory
	==> '/Users/bert/Library/Application Support/Etoys'

This is a folder inaccessible by untrusted content. Contains preferences and private crypto keys in Etoys.

	SecurityManager default untrustedUserDirectory 
	==> '/Users/bert/Documents/Etoys'

This is the sandbox folder, the only folder accessible by untrusted code. Before executing any untrusted (unsigned) code, the VM sandbox is enabled which prevents all file primitives from accessing anything outside this folder. Once enabled, there is no way to disable the sandbox again. Only on the next start will it be disabled.

- Bert -

  

This is interesting. How is the code signing done ?
cheers -ben

Using 512 bit DSA. See CodeLoader>>signFilesFrom:to:key: and SecurityManager>>generateLocalKeyPair.

- Bert -






smime.p7s (5K) Download Attachment