So...after debugging the VM, it looks it is crashing in DeflatePlugin >> encodeMatch: length distance: dist
encodeMatch: length distance: dist
"Encode the given match of length length starting at dist bytes ahead"
| literal distance |
<inline: true>
zipLiterals at: zipLiteralCount put: length - DeflateMinMatch.
zipDistances at: zipLiteralCount put: dist.
literal := (zipMatchLengthCodes at: length - DeflateMinMatch).
zipLiteralFreq at: literal put: (zipLiteralFreq at: literal) + 1.
dist < 257
ifTrue:[distance := zipDistanceCodes at: dist - 1]
ifFalse:[distance := zipDistanceCodes at: 256 + (dist - 1 bitShift: -7)].
zipDistanceFreq at: distance put: (zipDistanceFreq at: distance) + 1.
zipLiteralCount := zipLiteralCount + 1.
zipMatchCount := zipMatchCount + 1.
^zipLiteralCount = zipLiteralSize "We *must* flush"
or:[(zipLiteralCount bitAnd: 16rFFF) = 0 "Only check every N kbytes"
and:[self shouldFlush]]
When it does: zipDistanceFreq at: distance put: (zipDistanceFreq at: distance) + 1.
it gives a EXC_BAD_ACCESS.
distance value is 1444965993
The sender is #deflateBlock: lastIndex chainLength: chainLength goodMatch: goodMatch
and sender #primitiveDeflateBlock
If I do a call printAllStacks(), I get this part:
(gdb) call printAllStacks()
Process 0x1f70c924 priority 40
0xbff65968 M GZipWriteStream(DeflateStream)>deflateBlock 555574892: a(n) GZipWriteStream
0xbff6598c M GZipWriteStream(DeflateStream)>nextPutAll: 555574892: a(n) GZipWriteStream
0xbff659a8 M GZipWriteStream(DeflateStream)>next:putAll:startingAt: 555574892: a(n) GZipWriteStream
0xbff659cc M FLBufferedWriteStream>flushBuffer 556072120: a(n) FLBufferedWriteStream
0xbff659e4 M FLBufferedWriteStream>nextBytesPutAll: 556072120: a(n) FLBufferedWriteStream
0xbff65a04 M FLBufferedWriteStream>nextStringPut: 556072120: a(n) FLBufferedWriteStream
0xbff65a24 M [] in FLVariablesMapping>serializeMappingOn: 557179132: a(n) FLVariablesMapping
0xbff65a44 M OrderedCollection>do: 557179148: a(n) OrderedCollection
0xbff65a64 M FLVariablesMapping>serializeMappingOn: 557179132: a(n) FLVariablesMapping
0xbff65a80 M FLFixedObjectCluster(FLPointerObjectCluster)>serializeInstancesStepWith: 556081188: a(n) FLFixedObjectCluster
0xbff65a9c M FLSerialization>clusterInstancesStepOf: 556076884: a(n) FLSerialization
0xbff65ab8 M [] in FLSerialization>instancesStep 556076884: a(n) FLSerialization
And from the gdb I get:
#0 0x000b3721 in deflateBlockchainLengthgoodMatch at ZipPlugin.c:303
#1 0x000b4a62 in primitiveDeflateBlock at ZipPlugin.c:719
#2 0x1f400858 in ??
#3 0x00067820 in threadSchedulingLoop at gcc3x-cointerpmt.c:45853
#4 0x0003d79b in initialEnterSmalltalkExecutive at gcc3x-cointerpmt.c:18372
#5 0x0003e45f in initStackPagesAndInterpret at gcc3x-cointerpmt.c:18839
#6 0x00022ae8 in interpret at gcc3x-cointerpmt.c:2076
#7 0x0006df20 in -[sqSqueakMainApplication runSqueak] at sqSqueakMainApplication.m:174
#8 0x92ee186c in __NSFirePerformWithOrder
#9 0x967fadd2 in __CFRunLoopDoObservers
#10 0x967b6ced in __CFRunLoopRun
#11 0x967b63c4 in CFRunLoopRunSpecific
#12 0x967b61f1 in CFRunLoopRunInMode
#13 0x98262e04 in RunCurrentEventLoopInMode
#14 0x98262af5 in ReceiveNextEventCommon
#15 0x98262a3e in BlockUntilNextEventMatchingListInMode
#16 0x93159595 in _DPSNextEvent
#17 0x93158dd6 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
#18 0x9311b1f3 in -[NSApplication run]
#19 0x93113289 in NSApplicationMain
#20 0x0006bec9 in main at main.m:52
Any pointer is appreaciated.
THanks
en que SO estas corriendo..primitiva ??
por otro lado que tenes en el PharoDebug.Log
http://about.me/diogenes.moreira
2011/12/2 Mariano Martinez Peck <marianopeck@gmail.com>:
> Hi guys. We are doing some experiments with Fuel and GZip streams... Now I
> have a beatiful test like this:
>
> testMethodContextThisContext
>
> | materializedContext context |
> context := thisContext copy.
> materializedContext := self resultOfSerializeAndMaterialize: context.
>
> and it crashes like crazy. From the VM crash stack, I can see:
>
>
> Smalltalk stack dump:
> 0xbff66ba4 M GZipWriteStream(DeflateStream)>deflateBlock 447551436: a(n)
> GZipWriteStream
> 0xbff66bc8 M GZipWriteStream(DeflateStream)>nextPutAll: 447551436: a(n)
> GZipWriteStream
> 0xbff66be4 M GZipWriteStream(DeflateStream)>next:putAll:startingAt:
> 447551436: a(n) GZipWriteStream
> 0xbff66c08 M FLBufferedWriteStream>flushBuffer 448048664: a(n)
> FLBufferedWriteStream
> 0xbff66c20 M FLBufferedWriteStream>nextBytesPutAll: 448048664: a(n)
> FLBufferedWriteStream
> 0xbff66c40 M FLBufferedWriteStream>nextStringPut: 448048664: a(n)
> FLBufferedWriteStream
> 0xbff66c5c M FLByteStringCluster>serialize:on: 448054196: a(n)
> FLByteStringCluster
> 0xbff66c7c M FLByteStringCluster(FLPrimitiveCluster)>serializeInstance:with:
> 448054196: a(n) FLByteStringCluster
> 0xbff66ca0 M [] in
> FLByteStringCluster(FLIteratingCluster)>serializeInstances: 448054196: a(n)
> FLByteStringCluster
> 0xbff66cc8 M IdentitySet(Set)>do: 451711680: a(n) IdentitySet
> 0xbff66ce4 M FLByteStringCluster(FLIteratingCluster)>serializeInstances:
> 448054196: a(n) FLByteStringCluster
> 0xbff66d00 M
> FLByteStringCluster(FLIteratingCluster)>serializeInstancesStepWith:
> 448054196: a(n) FLByteStringCluster
> 0xbff66d1c M FLSerialization>clusterInstancesStepOf: 448053428: a(n)
> FLSerialization
> 0xbff66d38 M [] in FLSerialization>instancesStep 448053428: a(n)
> FLSerialization
> 0xbff66d58 M OrderedCollection>do: 449989736: a(n) OrderedCollection
> 0xbff66d74 M FLSerialization>instancesStep 448053428: a(n) FLSerialization
> 0xbff66d8c M FLSerialization>run 448053428: a(n) FLSerialization
> 0xbff66db0 I [] in FLSerializer>defaultSerialization 447550464: a(n)
> FLSerializer
> 0xbff66dd8 M [] in FLSerializer>serialize:on: 447550464: a(n) FLSerializer
> 0xbff66df8 M BlockClosure>ensure: 448052884: a(n) BlockClosure
> 0xbff66e18 M FLSerializer>serialize:on: 447550464: a(n) FLSerializer
> 0xbff66e3c M [] in
> FLMethodContextSerializationTest(FLSerializationTest)>serialize: 447235380:
> a(n) FLMethodContextSerializationTest
> 0xbff66e60 M [] in GZipWriteStream class(PositionableStream class)>on:do:
> 419845144: a(n) GZipWriteStream class
> 0xbff66e80 M BlockClosure>ensure: 448048616: a(n) BlockClosure
> 0xbff66ea0 M GZipWriteStream class(PositionableStream class)>on:do:
> 419845144: a(n) GZipWriteStream class
> 0xbff66ec4 M [] in FLGZipStrategy>writeStreamDo: 447550896: a(n)
> FLGZipStrategy
> 0xbff66ee0 M FLByteArrayStreamStrategy>writeStreamDo: 447550884: a(n)
> FLByteArrayStreamStrategy
> 0xbff66efc M FLGZipStrategy>writeStreamDo: 447550896: a(n) FLGZipStrategy
> 0xbff66f18 M
> FLMethodContextSerializationTest(FLSerializationTest)>serialize: 447235380:
> a(n) FLMethodContextSerializationTest
> 0xbff66f34 M
> FLMethodContextSerializationTest(FLSerializationTest)>resultOfSerializeAndMaterialize:
> 447235380: a(n) FLMethodContextSerializationTest
> 0xbff66f58 M FLMethodContextSerializationTest>testMethodContextThisContext
> 447235380: a(n) FLMethodContextSerializationTest
>
>
> any idea of where I should start to look at?
>
> Thanks
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>