Hi Frank,<br><br><div class="gmail_quote">On Wed, Feb 27, 2013 at 6:51 AM, Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
So I thought I&#39;d be extra tricky with some partial continuation stuff<br>
and, as sometimes happens, things went Badly Wrong and the VM crashed.<br>
What was odd was that it said &quot;last object overwritten&quot;, which I&#39;ve<br>
not seen before.<br></blockquote><div><br></div><div>this means what it says and is pointing to e.g. a bug in an FFI call.  Cog fills the object eden zone with a bit pattern and checks on every allocation that the word pointed to by the allocation pointer contains the correct bit pattern.  If the last object allocated is written-to past its end this will corrupt the bit pattern in the allocation zone and the next  allocation will exit with an error.  Such overwriting happens e.g. when one supplies a buffer that is too short to external code that writes to the buffer.</div>
<div><br></div><div>So if you&#39;re making FFI calls perhaps you can debug this yourself.</div><div><br></div><div>If you&#39;re not then, yes, please send me the tarball in email.</div><div><br></div><div>cheers.</div><div>
<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Good news though: I have an image that will trigger the bug in a<br>
reproducible fashion! Since it&#39;s a 14M tarball, maybe I should mail it<br>
to Eliot separately... (but if anyone else wants a look I&#39;m happy to<br>
supply a copy).<br>
<br>
frank<br>
<br>
Stack trace:<br>
<br>
last object overwritten<br>
<br>
Squeak VM version: 4.0-2678 #1 Wed Feb  6 11:36:48 PST 2013 gcc 4.1.2<br>
Built from: CoInterpreter VMMaker.oscog-eem.264 uuid:<br>
64e76092-8af7-449f-9188-e65f3bd1f08d Feb  6 2013<br>
With: StackToRegisterMappingCogit VMMaker.oscog-eem.264 uuid:<br>
64e76092-8af7-449f-9188-e65f3bd1f08d Feb  6 2013<br>
Revision: VM: r2678 <a href="http://www.squeakvm.org/svn/squeak/branches/Cog" target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog</a><br>
Plugins: r2545 <a href="http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins" target="_blank">http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins</a><br>
Build host: Linux mcqfes 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST<br>
2009 i686 i686 i386 GNU/Linux<br>
plugin path: /home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678<br>
[default: /home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/lib/squeak/4.0-2678/]<br>
<br>
<br>
C stack backtrace:<br>
/home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678/squeak[0x805cb71]<br>
/home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678/squeak(error+0x19)[0x805ce59]<br>
/home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678/squeak[0x8069bb3]<br>
/home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678/squeak[0x80789ff]<br>
[0x77709183]<br>
/home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678/squeak(interpret+0x1eb)[0x807f23b]<br>
/home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678/squeak(main+0x397)[0x805d237]<br>
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xbb1bd6]<br>
/home/frank/Documents/squeak-ci/target/cog.r2678/coglinux/bin/../lib/squeak/4.0-2678/squeak[0x805ac41]<br>
<br>
<br>
Smalltalk stack dump:<br>
0xbfc80668 M MethodContext(Object)&gt;copy 2037438000: a(n) MethodContext<br>
0xbfc80684 M MethodContext(ContextPart)&gt;copyTo: 2037438000: a(n) MethodContext<br>
0xbfc806a8 M MethodContext(ContextPart)&gt;copyTo: 2037437956: a(n) MethodContext<br>
0xbfc806cc M MethodContext(ContextPart)&gt;copyTo: 2037437880: a(n) MethodContext<br>
0xbfc87548 M MethodContext(ContextPart)&gt;copyTo: 2037440340: a(n) MethodContext<br>
0xbfc8756c M MethodContext(ContextPart)&gt;copyTo: 2037440248: a(n) MethodContext<br>
0xbfc87590 M MethodContext(ContextPart)&gt;copyTo: 2037439048: a(n) MethodContext<br>
0xbfc875b4 M MethodContext(ContextPart)&gt;copyTo: 2037440156: a(n) MethodContext<br>
0xbfc875d0 M PartialContinuation&gt;from:downTo: 2037440528: a(n)<br>
PartialContinuation<br>
0xbfc875f0 M PartialContinuation class&gt;from:downTo: 2032752868: a(n)<br>
PartialContinuation class<br>
0xbfc87620 M BlockClosure&gt;shift: 2037439144: a(n) BlockClosure<br>
0xbfc8763c M BlockClosure&gt;shift 2037439144: a(n) BlockClosure<br>
0xbfc87654 M [] in Zipper class&gt;zipOver: 2033885808: a(n) Zipper class<br>
0xbfc87674 M [] in Zipper class&gt;zipOver: 2033885808: a(n) Zipper class<br>
0xbfc8769c M TestTree&gt;collect: 2037413184: a(n) TestTree<br>
0xbfc876cc I TestTree&gt;collect: 2037413204: a(n) TestTree<br>
0x7970d604 s TestTree&gt;collect:<br>
0x7970d630 s [] in Zipper class&gt;zipOver:<br>
0x7970d65c s [] in PartialContinuation&gt;compose:<br>
0x7970d690 s [] in Zipper&gt;next:<br>
0x7970d6c4 s [] in PartialContinuation&gt;compose:<br>
0x7970d700 s [] in Zipper&gt;next:<br>
0x7970d73c s [] in PartialContinuation&gt;compose:<br>
0x7970d780 s [] in Zipper&gt;next:<br>
0x7970d87c s [] in PartialContinuation&gt;compose:<br>
0x7970d8c8 s [] in Zipper&gt;next:<br>
0x7970d914 s [] in PartialContinuation&gt;compose:<br>
0x7970d968 s [] in Zipper&gt;next:<br>
0xbfc92558 M [] in PartialContinuation&gt;compose: 2037435320: a(n)<br>
PartialContinuation<br>
0xbfc92578 M [] in Zipper&gt;next: 2037436996: a(n) Zipper<br>
0xbfc92594 M BlockClosure&gt;on:do: 2037437104: a(n) BlockClosure<br>
0xbfc925b4 M BlockClosure&gt;reset 2037437104: a(n) BlockClosure<br>
0xbfc925cc M Zipper&gt;next: 2037436996: a(n) Zipper<br>
0xbfc925f4 M ZipperTest&gt;testEnumerationWorksOverTrees 2035691720: a(n)<br>
ZipperTest<br>
0xbfc9260c M ZipperTest(TestCase)&gt;performTest 2035691720: a(n) ZipperTest<br>
0xbfc92624 M [] in ZipperTest(TestCase)&gt;runCase 2035691720: a(n) ZipperTest<br>
0xbfc92640 M BlockClosure&gt;on:do: 2037411540: a(n) BlockClosure<br>
0xbfc92668 M [] in ZipperTest(TestCase)&gt;timeout:after: 2035691720:<br>
a(n) ZipperTest<br>
0xbfc92688 M BlockClosure&gt;ensure: 2037412856: a(n) BlockClosure<br>
0xbfc926b0 M ZipperTest(TestCase)&gt;timeout:after: 2035691720: a(n) ZipperTest<br>
0xbfc926d0 M [] in ZipperTest(TestCase)&gt;runCase 2035691720: a(n) ZipperTest<br>
0xbfcd0508 M BlockClosure&gt;ensure: 2037409660: a(n) BlockClosure<br>
0xbfcd0524 M ZipperTest(TestCase)&gt;runCase 2035691720: a(n) ZipperTest<br>
0xbfcd0540 M [] in TestResult&gt;runCase: 2035689052: a(n) TestResult<br>
0xbfcd055c M BlockClosure&gt;on:do: 2037409516: a(n) BlockClosure<br>
0xbfcd0584 M [] in TestResult&gt;runCase: 2035689052: a(n) TestResult<br>
0xbfcd05a0 M BlockClosure&gt;on:do: 2037409368: a(n) BlockClosure<br>
0xbfcd05c4 M TestResult&gt;runCase: 2035689052: a(n) TestResult<br>
0xbfcd05e0 M ZipperTest(TestCase)&gt;run: 2035691720: a(n) ZipperTest<br>
0xbfcd05fc M TestRunner&gt;runTest: 2034780632: a(n) TestRunner<br>
0xbfcd0620 I [] in TestRunner&gt;runSuite: 2034780632: a(n) TestRunner<br>
0xbfcd0658 M [] in<br>
OrderedCollection(Collection)&gt;do:displayingProgress:every: 2035691588:<br>
a(n) OrderedCollection<br>
0xbfcd0678 M OrderedCollection&gt;do: 2035691588: a(n) OrderedCollection<br>
0xbfcd06a8 M [] in<br>
OrderedCollection(Collection)&gt;do:displayingProgress:every: 2035691588:<br>
a(n) OrderedCollection<br>
0xbfcd06d0 M [] in MorphicUIManager&gt;displayProgress:at:from:to:during:<br>
2015074224: a(n) MorphicUIManager<br>
0xbfccd504 M BlockClosure&gt;on:do: 2035694312: a(n) BlockClosure<br>
0xbfccd530 M [] in MorphicUIManager&gt;displayProgress:at:from:to:during:<br>
2015074224: a(n) MorphicUIManager<br>
0xbfccd550 M BlockClosure&gt;ensure: 2035694164: a(n) BlockClosure<br>
0xbfccd574 M MorphicUIManager&gt;displayProgress:at:from:to:during:<br>
2015074224: a(n) MorphicUIManager<br>
0xbfccd5a0 M ProgressInitiationException&gt;defaultResumeValue<br>
2035693376: a(n) ProgressInitiationException<br>
0xbfccd5bc M ProgressInitiationException(Exception)&gt;resume 2035693376:<br>
a(n) ProgressInitiationException<br>
0xbfccd5d4 M ProgressInitiationException&gt;defaultAction 2035693376:<br>
a(n) ProgressInitiationException<br>
0xbfccd5f0 M UndefinedObject&gt;handleSignal: 2004824068: a(n) UndefinedObject<br>
0xbfccd610 M MethodContext(ContextPart)&gt;handleSignal: 2035693708: a(n)<br>
MethodContext<br>
0xbfccd62c M ProgressInitiationException(Exception)&gt;signal 2035693376:<br>
a(n) ProgressInitiationException<br>
0xbfccd644 M ProgressInitiationException&gt;display:at:from:to:during:<br>
2035693376: a(n) ProgressInitiationException<br>
0xbfccd670 M ProgressInitiationException<br>
class&gt;display:at:from:to:during: 2015244060: a(n)<br>
ProgressInitiationException class<br>
0xbfccd69c M ByteString(String)&gt;displayProgressAt:from:to:during:<br>
2015249596: a(n) ByteString<br>
0xbfccd6c4 M ByteString(String)&gt;displayProgressFrom:to:during:<br>
2015249596: a(n) ByteString<br>
0xbfccc5d0 M OrderedCollection(Collection)&gt;do:displayingProgress:every:<br>
2035691588: a(n) OrderedCollection<br>
0xbfccc608 I [] in TestRunner&gt;basicRunSuite:do: 2034780632: a(n) TestRunner<br>
0xbfccc628 M BlockClosure&gt;ensure: 2035693036: a(n) BlockClosure<br>
0xbfccc64c I TestRunner&gt;basicRunSuite:do: 2034780632: a(n) TestRunner<br>
0xbfccc674 I TestRunner&gt;runSuite: 2034780632: a(n) TestRunner<br>
0xbfccc690 M TestRunner&gt;runAll 2034780632: a(n) TestRunner<br>
0xbfccc6b0 I PluggableButtonMorphPlus(PluggableButtonMorph)&gt;performAction<br>
2034847192: a(n) PluggableButtonMorphPlus<br>
0xbfccc6d0 I PluggableButtonMorphPlus&gt;performAction 2034847192: a(n)<br>
PluggableButtonMorphPlus<br>
0xbfccf534 M [] in<br>
PluggableButtonMorphPlus(PluggableButtonMorph)&gt;mouseUp: 2034847192:<br>
a(n) PluggableButtonMorphPlus<br>
0xbfccf558 M Array(SequenceableCollection)&gt;do: 2035687788: a(n) Array<br>
0xbfccf574 M PluggableButtonMorphPlus(PluggableButtonMorph)&gt;mouseUp:<br>
2034847192: a(n) PluggableButtonMorphPlus<br>
0xbfccf598 I PluggableButtonMorphPlus&gt;mouseUp: 2034847192: a(n)<br>
PluggableButtonMorphPlus<br>
0xbfccf5b4 M PluggableButtonMorphPlus(Morph)&gt;handleMouseUp:<br>
2034847192: a(n) PluggableButtonMorphPlus<br>
0xbfccf5d0 M MouseButtonEvent&gt;sentTo: 2035688712: a(n) MouseButtonEvent<br>
0xbfccf5ec M PluggableButtonMorphPlus(Morph)&gt;handleEvent: 2034847192:<br>
a(n) PluggableButtonMorphPlus<br>
0xbfccf608 M PluggableButtonMorphPlus(Morph)&gt;handleFocusEvent:<br>
2034847192: a(n) PluggableButtonMorphPlus<br>
0xbfccf630 M [] in HandMorph&gt;sendFocusEvent:to:clear: 2007171128: a(n) HandMorph<br>
0xbfccf64c M BlockClosure&gt;on:do: 2035688464: a(n) BlockClosure<br>
0xbfccf678 M PasteUpMorph&gt;becomeActiveDuring: 2013415124: a(n) PasteUpMorph<br>
0xbfccf69c M HandMorph&gt;sendFocusEvent:to:clear: 2007171128: a(n) HandMorph<br>
0xbfccf6c4 M HandMorph&gt;sendEvent:focus:clear: 2007171128: a(n) HandMorph<br>
0xbfc755b4 M HandMorph&gt;sendMouseEvent: 2007171128: a(n) HandMorph<br>
0xbfc755d8 M HandMorph&gt;handleEvent: 2007171128: a(n) HandMorph<br>
0xbfc75604 M HandMorph&gt;processEvents 2007171128: a(n) HandMorph<br>
0xbfc75620 M [] in WorldState&gt;doOneCycleNowFor: 2004979600: a(n) WorldState<br>
0xbfc75644 M Array(SequenceableCollection)&gt;do: 2004895736: a(n) Array<br>
0xbfc75660 M WorldState&gt;handsDo: 2004979600: a(n) WorldState<br>
0xbfc75680 M WorldState&gt;doOneCycleNowFor: 2004979600: a(n) WorldState<br>
0xbfc7569c M WorldState&gt;doOneCycleFor: 2004979600: a(n) WorldState<br>
0xbfc756b8 M PasteUpMorph&gt;doOneCycle 2013415124: a(n) PasteUpMorph<br>
0xbfc756d0 M [] in Project class&gt;spawnNewProcess 2012564228: a(n) Project class<br>
0x79075924 s [] in BlockClosure&gt;newProcess<br>
<br>
Most recent primitives<br>
basicNew<br>
basicNew<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
basicNew<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
shallowCopy<br>
<br>
stack page bytes 4096 available headroom 3300 minimum unused headroom 3504<br>
<br>
        (last object overwritten)<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>