Error: sweep failed to find exact end of memory

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

Error: sweep failed to find exact end of memory

Mariano Martinez Peck
 
Hi, I am having this error quite frequently while working with the proxies for CompiledMethods. I don't understand....I am reaching a maximum in the memory? I checked both, the amount of Objects I create and the amount of memory and doesn't look that large.  I am in mac and I am even doing -memory 1500m and also setting HeapSize in plist.info.

Any hints?  I serached in Google and I found a bug with signed and unsiged stuff...but i didn't understand and I am not sure which is the status today (the threads were quite old).

Here is an example:


sweep failed to find exact end of memory

594035904 Object>myDependents:
594035812 Object>breakDependents
594035720 Object>actAsExecutor
594035628 StandardFileStream>actAsExecutor
594035496 Object>executor
594035332 WeakRegistry>add:
594035240 >register:
594035148 StandardFileStream>register
594034104 StandardFileStream>open:forWrite:
594032588 >fileNamed:
594032496 FuelMareaSerializer>mareaUnserializeMethodFrom:
594032216 >mareaLoadCompiledMethodFor:
594032124 >mareaUninstallForProxy:ifNotInstalled:
594032032 >mareaUninstallForProxy:
594027820 >mareaHandleRun:with:in:forProxy:
594027640 AbstractCompiledMethodProxy>run:with:in:
593741548 OMenuMorph>drawOn:
593741456 CompiledMethod>valueWithReceiver:arguments:
593740508 >mareaHandleRun:with:in:forProxy:
593740416 AbstractCompiledMethodProxy>run:with:in:
593740324 Canvas>draw:
593740232 Canvas>drawMorph:
593740140 Morph>fullDrawOn:
593740028 FormCanvas>roundCornersOf:in:during:
593739936 Canvas>roundCornersOf:during:
593739808 Morph>fullDrawOn:
593739628 Canvas>fullDraw:
593739536 Canvas>fullDrawMorph:
593739004 WorldState>drawWorld:submorphs:invalidAreasOn:
593738104 Rectangle>allAreasOutsideList:startingAt:do:
593738012 Rectangle>allAreasOutsideList:do:
593738708 WorldState>drawWorld:submorphs:invalidAreasOn:
593737920 SequenceableCollection>do:
593737652 WorldState>drawWorld:submorphs:invalidAreasOn:
593737532 WorldState>displayWorld:submorphs:
593737440 FormCanvas>roundCornersOf:in:during:
593737348 Canvas>roundCornersOf:during:
593737244 WorldState>displayWorld:submorphs:
593737152 PasteUpMorph>privateOuterDisplayWorld
593737004 PasteUpMorph>displayWorld
593736912 WorldState>displayWorldSafely:
593736820 BlockClosure>on:do:
593736728 BlockClosure>ifError:
593736636 WorldState>displayWorldSafely:
593731064 WorldState>doOneCycleNowFor:
593730972 WorldState>doOneCycleFor:
593730880 PasteUpMorph>doOneCycle
564294164 >spawnNewProcess
564294036 BlockClosure>newProcess


But this is just one example.

Thanks in advance for any help

Mariano
Reply | Threaded
Open this post in threaded view
|

Re: Error: sweep failed to find exact end of memory

Andreas.Raab
 
The error means that the heap is corrupted. It has nothing to do with
number of objects. Basically, what happens is that the garbage collector
found that the last object it compacted in memory did not end exactly at
the current allocation pointer. This cannot happen under any
circumstances and means that the heap is in a corrupted state.

Why it happens is your guess but I can tell you that it must've happened
since the last (incr/full) GC since this test is extremely cheap and
therefore done on every GC cycle.

Cheers,
   - Andreas

On 12/7/2010 3:34 PM, Mariano Martinez Peck wrote:

>
>
>
>
> Hi, I am having this error quite frequently while working with the
> proxies for CompiledMethods. I don't understand....I am reaching a
> maximum in the memory? I checked both, the amount of Objects I create
> and the amount of memory and doesn't look that large.  I am in mac and I
> am even doing -memory 1500m and also setting HeapSize in plist.info
> <http://plist.info>.
>
> Any hints?  I serached in Google and I found a bug with signed and
> unsiged stuff...but i didn't understand and I am not sure which is the
> status today (the threads were quite old).
>
> Here is an example:
>
>
> sweep failed to find exact end of memory
>
> 594035904 Object>myDependents:
> 594035812 Object>breakDependents
> 594035720 Object>actAsExecutor
> 594035628 StandardFileStream>actAsExecutor
> 594035496 Object>executor
> 594035332 WeakRegistry>add:
> 594035240 >register:
> 594035148 StandardFileStream>register
> 594034104 StandardFileStream>open:forWrite:
> 594032588 >fileNamed:
> 594032496 FuelMareaSerializer>mareaUnserializeMethodFrom:
> 594032216 >mareaLoadCompiledMethodFor:
> 594032124 >mareaUninstallForProxy:ifNotInstalled:
> 594032032 >mareaUninstallForProxy:
> 594027820 >mareaHandleRun:with:in:forProxy:
> 594027640 AbstractCompiledMethodProxy>run:with:in:
> 593741548 OMenuMorph>drawOn:
> 593741456 CompiledMethod>valueWithReceiver:arguments:
> 593740508 >mareaHandleRun:with:in:forProxy:
> 593740416 AbstractCompiledMethodProxy>run:with:in:
> 593740324 Canvas>draw:
> 593740232 Canvas>drawMorph:
> 593740140 Morph>fullDrawOn:
> 593740028 FormCanvas>roundCornersOf:in:during:
> 593739936 Canvas>roundCornersOf:during:
> 593739808 Morph>fullDrawOn:
> 593739628 Canvas>fullDraw:
> 593739536 Canvas>fullDrawMorph:
> 593739004 WorldState>drawWorld:submorphs:invalidAreasOn:
> 593738104 Rectangle>allAreasOutsideList:startingAt:do:
> 593738012 Rectangle>allAreasOutsideList:do:
> 593738708 WorldState>drawWorld:submorphs:invalidAreasOn:
> 593737920 SequenceableCollection>do:
> 593737652 WorldState>drawWorld:submorphs:invalidAreasOn:
> 593737532 WorldState>displayWorld:submorphs:
> 593737440 FormCanvas>roundCornersOf:in:during:
> 593737348 Canvas>roundCornersOf:during:
> 593737244 WorldState>displayWorld:submorphs:
> 593737152 PasteUpMorph>privateOuterDisplayWorld
> 593737004 PasteUpMorph>displayWorld
> 593736912 WorldState>displayWorldSafely:
> 593736820 BlockClosure>on:do:
> 593736728 BlockClosure>ifError:
> 593736636 WorldState>displayWorldSafely:
> 593731064 WorldState>doOneCycleNowFor:
> 593730972 WorldState>doOneCycleFor:
> 593730880 PasteUpMorph>doOneCycle
> 564294164 >spawnNewProcess
> 564294036 BlockClosure>newProcess
>
>
> But this is just one example.
>
> Thanks in advance for any help
>
> Mariano
Reply | Threaded
Open this post in threaded view
|

Re: Error: sweep failed to find exact end of memory

Mariano Martinez Peck
 


On Wed, Dec 8, 2010 at 1:00 AM, Andreas Raab <[hidden email]> wrote:

The error means that the heap is corrupted. It has nothing to do with number of objects. Basically, what happens is that the garbage collector found that the last object it compacted in memory did not end exactly at the current allocation pointer. This cannot happen under any circumstances and means that the heap is in a corrupted state.

Thanks Andreas. And what does it mean that the "heap is corrupted"? can you give me details?

Thanks again in advance,

Mariano
 

Why it happens is your guess but I can tell you that it must've happened since the last (incr/full) GC since this test is extremely cheap and therefore done on every GC cycle.

Cheers,
 - Andreas


On 12/7/2010 3:34 PM, Mariano Martinez Peck wrote:




Hi, I am having this error quite frequently while working with the
proxies for CompiledMethods. I don't understand....I am reaching a
maximum in the memory? I checked both, the amount of Objects I create
and the amount of memory and doesn't look that large.  I am in mac and I
am even doing -memory 1500m and also setting HeapSize in plist.info
<http://plist.info>.


Any hints?  I serached in Google and I found a bug with signed and
unsiged stuff...but i didn't understand and I am not sure which is the
status today (the threads were quite old).

Here is an example:


sweep failed to find exact end of memory

594035904 Object>myDependents:
594035812 Object>breakDependents
594035720 Object>actAsExecutor
594035628 StandardFileStream>actAsExecutor
594035496 Object>executor
594035332 WeakRegistry>add:
594035240 >register:
594035148 StandardFileStream>register
594034104 StandardFileStream>open:forWrite:
594032588 >fileNamed:
594032496 FuelMareaSerializer>mareaUnserializeMethodFrom:
594032216 >mareaLoadCompiledMethodFor:
594032124 >mareaUninstallForProxy:ifNotInstalled:
594032032 >mareaUninstallForProxy:
594027820 >mareaHandleRun:with:in:forProxy:
594027640 AbstractCompiledMethodProxy>run:with:in:
593741548 OMenuMorph>drawOn:
593741456 CompiledMethod>valueWithReceiver:arguments:
593740508 >mareaHandleRun:with:in:forProxy:
593740416 AbstractCompiledMethodProxy>run:with:in:
593740324 Canvas>draw:
593740232 Canvas>drawMorph:
593740140 Morph>fullDrawOn:
593740028 FormCanvas>roundCornersOf:in:during:
593739936 Canvas>roundCornersOf:during:
593739808 Morph>fullDrawOn:
593739628 Canvas>fullDraw:
593739536 Canvas>fullDrawMorph:
593739004 WorldState>drawWorld:submorphs:invalidAreasOn:
593738104 Rectangle>allAreasOutsideList:startingAt:do:
593738012 Rectangle>allAreasOutsideList:do:
593738708 WorldState>drawWorld:submorphs:invalidAreasOn:
593737920 SequenceableCollection>do:
593737652 WorldState>drawWorld:submorphs:invalidAreasOn:
593737532 WorldState>displayWorld:submorphs:
593737440 FormCanvas>roundCornersOf:in:during:
593737348 Canvas>roundCornersOf:during:
593737244 WorldState>displayWorld:submorphs:
593737152 PasteUpMorph>privateOuterDisplayWorld
593737004 PasteUpMorph>displayWorld
593736912 WorldState>displayWorldSafely:
593736820 BlockClosure>on:do:
593736728 BlockClosure>ifError:
593736636 WorldState>displayWorldSafely:
593731064 WorldState>doOneCycleNowFor:
593730972 WorldState>doOneCycleFor:
593730880 PasteUpMorph>doOneCycle
564294164 >spawnNewProcess
564294036 BlockClosure>newProcess


But this is just one example.

Thanks in advance for any help

Mariano

Reply | Threaded
Open this post in threaded view
|

Re: Error: sweep failed to find exact end of memory

Andreas.Raab
 
On 12/8/2010 1:27 AM, Mariano Martinez Peck wrote:

> On Wed, Dec 8, 2010 at 1:00 AM, Andreas Raab <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     The error means that the heap is corrupted. It has nothing to do
>     with number of objects. Basically, what happens is that the garbage
>     collector found that the last object it compacted in memory did not
>     end exactly at the current allocation pointer. This cannot happen
>     under any circumstances and means that the heap is in a corrupted state.
>
>
> Thanks Andreas. And what does it mean that the "heap is corrupted"? can
> you give me details?

"Corrupted" means "altered from the original or correct form or version"
(http://www.merriam-webster.com/dictionary/corrupt). As for details,
read the code. There are a bunch of sanity checks at the end of
ObjectMemory>>sweepPhase.

Cheers,
   - Andreas

>
> Thanks again in advance,
>
> Mariano
>
>
>     Why it happens is your guess but I can tell you that it must've
>     happened since the last (incr/full) GC since this test is extremely
>     cheap and therefore done on every GC cycle.
>
>     Cheers,
>       - Andreas
>
>
>     On 12/7/2010 3:34 PM, Mariano Martinez Peck wrote:
>
>
>
>
>
>         Hi, I am having this error quite frequently while working with the
>         proxies for CompiledMethods. I don't understand....I am reaching a
>         maximum in the memory? I checked both, the amount of Objects I
>         create
>         and the amount of memory and doesn't look that large.  I am in
>         mac and I
>         am even doing -memory 1500m and also setting HeapSize in
>         plist.info <http://plist.info>
>         <http://plist.info>.
>
>
>         Any hints?  I serached in Google and I found a bug with signed and
>         unsiged stuff...but i didn't understand and I am not sure which
>         is the
>         status today (the threads were quite old).
>
>         Here is an example:
>
>
>         sweep failed to find exact end of memory
>
>         594035904 Object>myDependents:
>         594035812 Object>breakDependents
>         594035720 Object>actAsExecutor
>         594035628 StandardFileStream>actAsExecutor
>         594035496 Object>executor
>         594035332 WeakRegistry>add:
>         594035240 >register:
>         594035148 StandardFileStream>register
>         594034104 StandardFileStream>open:forWrite:
>         594032588 >fileNamed:
>         594032496 FuelMareaSerializer>mareaUnserializeMethodFrom:
>         594032216 >mareaLoadCompiledMethodFor:
>         594032124 >mareaUninstallForProxy:ifNotInstalled:
>         594032032 >mareaUninstallForProxy:
>         594027820 >mareaHandleRun:with:in:forProxy:
>         594027640 AbstractCompiledMethodProxy>run:with:in:
>         593741548 OMenuMorph>drawOn:
>         593741456 CompiledMethod>valueWithReceiver:arguments:
>         593740508 >mareaHandleRun:with:in:forProxy:
>         593740416 AbstractCompiledMethodProxy>run:with:in:
>         593740324 Canvas>draw:
>         593740232 Canvas>drawMorph:
>         593740140 Morph>fullDrawOn:
>         593740028 FormCanvas>roundCornersOf:in:during:
>         593739936 Canvas>roundCornersOf:during:
>         593739808 Morph>fullDrawOn:
>         593739628 Canvas>fullDraw:
>         593739536 Canvas>fullDrawMorph:
>         593739004 WorldState>drawWorld:submorphs:invalidAreasOn:
>         593738104 Rectangle>allAreasOutsideList:startingAt:do:
>         593738012 Rectangle>allAreasOutsideList:do:
>         593738708 WorldState>drawWorld:submorphs:invalidAreasOn:
>         593737920 SequenceableCollection>do:
>         593737652 WorldState>drawWorld:submorphs:invalidAreasOn:
>         593737532 WorldState>displayWorld:submorphs:
>         593737440 FormCanvas>roundCornersOf:in:during:
>         593737348 Canvas>roundCornersOf:during:
>         593737244 WorldState>displayWorld:submorphs:
>         593737152 PasteUpMorph>privateOuterDisplayWorld
>         593737004 PasteUpMorph>displayWorld
>         593736912 WorldState>displayWorldSafely:
>         593736820 BlockClosure>on:do:
>         593736728 BlockClosure>ifError:
>         593736636 WorldState>displayWorldSafely:
>         593731064 WorldState>doOneCycleNowFor:
>         593730972 WorldState>doOneCycleFor:
>         593730880 PasteUpMorph>doOneCycle
>         564294164 >spawnNewProcess
>         564294036 BlockClosure>newProcess
>
>
>         But this is just one example.
>
>         Thanks in advance for any help
>
>         Mariano
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Error: sweep failed to find exact end of memory

Eliot Miranda-2
In reply to this post by Mariano Martinez Peck
 


On Wed, Dec 8, 2010 at 1:27 AM, Mariano Martinez Peck <[hidden email]> wrote:
 


On Wed, Dec 8, 2010 at 1:00 AM, Andreas Raab <[hidden email]> wrote:

The error means that the heap is corrupted. It has nothing to do with number of objects. Basically, what happens is that the garbage collector found that the last object it compacted in memory did not end exactly at the current allocation pointer. This cannot happen under any circumstances and means that the heap is in a corrupted state.

Thanks Andreas. And what does it mean that the "heap is corrupted"? can you give me details?

An example would be a stray write into the size field of an object which would cause it to have the wrong size and hence break the parse.


Thanks again in advance,

Mariano
 

Why it happens is your guess but I can tell you that it must've happened since the last (incr/full) GC since this test is extremely cheap and therefore done on every GC cycle.

Cheers,
 - Andreas


On 12/7/2010 3:34 PM, Mariano Martinez Peck wrote:




Hi, I am having this error quite frequently while working with the
proxies for CompiledMethods. I don't understand....I am reaching a
maximum in the memory? I checked both, the amount of Objects I create
and the amount of memory and doesn't look that large.  I am in mac and I
am even doing -memory 1500m and also setting HeapSize in plist.info
<http://plist.info>.


Any hints?  I serached in Google and I found a bug with signed and
unsiged stuff...but i didn't understand and I am not sure which is the
status today (the threads were quite old).

Here is an example:


sweep failed to find exact end of memory

594035904 Object>myDependents:
594035812 Object>breakDependents
594035720 Object>actAsExecutor
594035628 StandardFileStream>actAsExecutor
594035496 Object>executor
594035332 WeakRegistry>add:
594035240 >register:
594035148 StandardFileStream>register
594034104 StandardFileStream>open:forWrite:
594032588 >fileNamed:
594032496 FuelMareaSerializer>mareaUnserializeMethodFrom:
594032216 >mareaLoadCompiledMethodFor:
594032124 >mareaUninstallForProxy:ifNotInstalled:
594032032 >mareaUninstallForProxy:
594027820 >mareaHandleRun:with:in:forProxy:
594027640 AbstractCompiledMethodProxy>run:with:in:
593741548 OMenuMorph>drawOn:
593741456 CompiledMethod>valueWithReceiver:arguments:
593740508 >mareaHandleRun:with:in:forProxy:
593740416 AbstractCompiledMethodProxy>run:with:in:
593740324 Canvas>draw:
593740232 Canvas>drawMorph:
593740140 Morph>fullDrawOn:
593740028 FormCanvas>roundCornersOf:in:during:
593739936 Canvas>roundCornersOf:during:
593739808 Morph>fullDrawOn:
593739628 Canvas>fullDraw:
593739536 Canvas>fullDrawMorph:
593739004 WorldState>drawWorld:submorphs:invalidAreasOn:
593738104 Rectangle>allAreasOutsideList:startingAt:do:
593738012 Rectangle>allAreasOutsideList:do:
593738708 WorldState>drawWorld:submorphs:invalidAreasOn:
593737920 SequenceableCollection>do:
593737652 WorldState>drawWorld:submorphs:invalidAreasOn:
593737532 WorldState>displayWorld:submorphs:
593737440 FormCanvas>roundCornersOf:in:during:
593737348 Canvas>roundCornersOf:during:
593737244 WorldState>displayWorld:submorphs:
593737152 PasteUpMorph>privateOuterDisplayWorld
593737004 PasteUpMorph>displayWorld
593736912 WorldState>displayWorldSafely:
593736820 BlockClosure>on:do:
593736728 BlockClosure>ifError:
593736636 WorldState>displayWorldSafely:
593731064 WorldState>doOneCycleNowFor:
593730972 WorldState>doOneCycleFor:
593730880 PasteUpMorph>doOneCycle
564294164 >spawnNewProcess
564294036 BlockClosure>newProcess


But this is just one example.

Thanks in advance for any help

Mariano