Hi Rob,<br><br><div class="gmail_quote">On Mon, Jul 19, 2010 at 3:10 AM, Rob Withers <span dir="ltr">&lt;<a href="mailto:reefedjib@yahoo.com">reefedjib@yahoo.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Eliot,<br>
<br>
I am getting a segmentation fault running Cog headless on linux.  Here is the stack dump.  Below is a second stack dump that looks different.<br></blockquote><div><br></div><div>While the heap corruption might be a bug in Cog it might also be heap corruption from external code (e.g. objects passed through FFI calls to external code that overwrites those objects&#39; bounds).</div>
<div><br></div><div>There&#39;s a leak checker in Cog (see the -leakcheck argument in platforms/unix/vm/sqUnixMain.c) that can help you localise this.  Its best to distrust your code before you distrust the VM, simply because thinking it&#39;s the VM can blind-side you to potential bugs in your own code or other parts of the system.  The goal here is a reproducible case.  If you get a reproducible case that doesn&#39;t use any external code then the bug is in the VM.</div>
<div><br></div><div>HTH</div><div>Eliot</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">HTH,<br>
Rob<br>
<br>
FIRST STACK DUMP<br>
<br>
<a href="mailto:vawhigso@vawhigs.org" target="_blank">vawhigso@vawhigs.org</a> [~/public_html/squeakelib/Cog]# kill -USR1 30247<br>
<a href="mailto:vawhigso@vawhigs.org" target="_blank">vawhigso@vawhigs.org</a> [~/public_html/squeakelib/Cog]#<br>
Received user signal, printing active stack:<br>
<br>
0xff940ab8 I SmalltalkImage&gt;garbageCollect -1207282732: a(n) SmalltalkImage<br>
0xff940ad0 M Introducer class&gt;areVatsRunning -1144872564: a(n) Introducer class<br>
0xff940ae8 M PluggableButtonMorph&gt;getModelState -1134952004: a(n) PluggableButtonMorph<br>
0xff940b00 M PluggableButtonMorph&gt;update: -1134952004: a(n) PluggableButtonMorph<br>
0xff940b1c M StepMessage(MessageSend)&gt;value -1134947088: a(n) StepMessage<br>
0xff940b38 M StepMessage(MorphicAlarm)&gt;value: -1134947088: a(n) StepMessage<br>
0xff940b64 M WorldState&gt;runLocalStepMethodsIn: -1215450852: a(n) WorldState<br>
0xff940b90 M WorldState&gt;runStepMethodsIn: -1215450852: a(n) WorldState<br>
0xff940bac M PasteUpMorph&gt;runStepMethods -1215450600: a(n) PasteUpMorph<br>
0xff940bc8 M WorldState&gt;doOneCycleNowFor: -1215450852: a(n) WorldState<br>
0xff940be4 M WorldState&gt;doOneCycleFor: -1215450852: a(n) WorldState<br>
0xff940c00 M PasteUpMorph&gt;doOneCycle -1215450600: a(n) PasteUpMorph<br>
0xff940c20 I [] in Project class&gt;spawnNewProcess -1138060792: a(n) Project class<br>
-1133485544 s [] in<br>
Segmentation fault<br>
<br>
<br>
<br>
Smalltalk stack dump:<br>
0xff940ab8 I SmalltalkImage&gt;garbageCollect -1207282732: a(n) SmalltalkImage<br>
0xff940ad0 M Introducer class&gt;areVatsRunning -1144872564: a(n) Introducer class<br>
0xff940ae8 M PluggableButtonMorph&gt;getModelState -1134952004: a(n) PluggableButtonMorph<br>
0xff940b00 M PluggableButtonMorph&gt;update: -1134952004: a(n) PluggableButtonMorph<br>
0xff940b1c M StepMessage(MessageSend)&gt;value -1134947088: a(n) StepMessage<br>
0xff940b38 M StepMessage(MorphicAlarm)&gt;value: -1134947088: a(n) StepMessage<br>
0xff940b64 M WorldState&gt;runLocalStepMethodsIn: -1215450852: a(n) WorldState<br>
0xff940b90 M WorldState&gt;runStepMethodsIn: -1215450852: a(n) WorldState<br>
0xff940bac M PasteUpMorph&gt;runStepMethods -1215450600: a(n) PasteUpMorph<br>
0xff940bc8 M WorldState&gt;doOneCycleNowFor: -1215450852: a(n) WorldState<br>
0xff940be4 M WorldState&gt;doOneCycleFor: -1215450852: a(n) WorldState<br>
0xff940c00 M PasteUpMorph&gt;doOneCycle -1215450600: a(n) PasteUpMorph<br>
0xff940c20 I [] in Project class&gt;spawnNewProcess -1138060792: a(n) Project class<br>
<br>
<br>
SECOND STACK DUMP<br>
<br>
<a href="mailto:vawhigso@vawhigs.org" target="_blank">vawhigso@vawhigs.org</a> [~/public_html/squeakelib/Cog]# kill -USR1 7340<br>
<br>
Received user signal, printing active stack:<br>
<br>
<a href="mailto:vawhigso@vawhigs.org" target="_blank">vawhigso@vawhigs.org</a> [~/public_html/squeakelib/Cog]# 0xffaf3398 I SmalltalkImage&gt;garbageCollect -1207897132: a(n) SmalltalkImage<br>
0xffaf33b0 M Introducer class&gt;areVatsRunning -1145486964: a(n) Introducer class<br>
0xffaf33c8 M PluggableButtonMorph&gt;getModelState -1135564980: a(n) PluggableButtonMorph<br>
0xffaf33e0 M PluggableButtonMorph&gt;update: -1135564980: a(n) PluggableButtonMorph<br>
0xffaf33fc M StepMessage(MessageSend)&gt;value -1135561416: a(n) StepMessage<br>
0xffaf3418 M StepMessage(MorphicAlarm)&gt;value: -1135561416: a(n) StepMessage<br>
0xffaf3444 M WorldState&gt;runLocalStepMethodsIn: -1216065252: a(n) WorldState<br>
0xffaf3470 M WorldState&gt;runStepMethodsIn: -1216065252: a(n) WorldState<br>
0xffaf348c M PasteUpMorph&gt;runStepMethods -1216065000: a(n) PasteUpMorph<br>
0xffaf34a8 M WorldState&gt;doOneCycleNowFor: -1216065252: a(n) WorldState<br>
0xffaf34c4 M WorldState&gt;doOneCycleFor: -1216065252: a(n) WorldState<br>
0xffaf34e0 M PasteUpMorph&gt;doOneCycle -1216065000: a(n) PasteUpMorph<br>
0xffaf3500 I [] in Project class&gt;spawnNewProcess -1138675192: a(n) Project class<br>
-1134099944 s [] in BlockClosure&gt;newProcess<br>
<br>
Received user signal, printing all processes:<br>
<br>
Process 0xbc670278 priority 40<br>
0xffaf3398 I SmalltalkImage&gt;garbageCollect -1207897132: a(n) SmalltalkImage<br>
0xffaf33b0 M Introducer class&gt;areVatsRunning -1145486964: a(n) Introducer class<br>
0xffaf33c8 M PluggableButtonMorph&gt;getModelState -1135564980: a(n) PluggableButtonMorph<br>
0xffaf33e0 M PluggableButtonMorph&gt;update: -1135564980: a(n) PluggableButtonMorph<br>
0xffaf33fc M StepMessage(MessageSend)&gt;value -1135561416: a(n) StepMessage<br>
0xffaf3418 M StepMessage(MorphicAlarm)&gt;value: -1135561416: a(n) StepMessage<br>
0xffaf3444 M WorldState&gt;runLocalStepMethodsIn: -1216065252: a(n) WorldState<br>
0xffaf3470 M WorldState&gt;runStepMethodsIn: -1216065252: a(n) WorldState<br>
0xffaf348c M PasteUpMorph&gt;runStepMethods -1216065000: a(n) PasteUpMorph<br>
0xffaf34a8 M WorldState&gt;doOneCycleNowFor: -1216065252: a(n) WorldState<br>
0xffaf34c4 M WorldState&gt;doOneCycleFor: -1216065252: a(n) WorldState<br>
0xffaf34e0 M PasteUpMorph&gt;doOneCycle -1216065000: a(n) PasteUpMorph<br>
0xffaf3500 I [] in Project class&gt;spawnNewProcess -1138675192: a(n) Project class<br>
-1134099944 s [] in BlockClosure&gt;newProcess<br>
<br>
Process 0xbc97fc44 priority 50<br>
0xffafa4c0 M WeakArray class&gt;finalizationProcess -1210174624: a(n) WeakArray class<br>
0xffafa4e0 I [] in WeakArray class&gt;restartFinalizationProcess -1210174624: a(n) WeakArray class<br>
0xffafa500 I [] in BlockClosure&gt;newProcess -1130890396: a(n) BlockClosure<br>
<br>
Process 0xb8125518 priority 80<br>
widowed caller frame<br>
<br>
EventualProcess 0xbbbd6e10 priority 60<br>
-1134095516 s [] in Delay&gt;wait<br>
-1134049404 s BlockClosure&gt;ifCurtailed:<br>
-1134095648 s Delay&gt;wait<br>
-1134049312 s [] in VatTPManager class&gt;finalizationLoop<br>
-1145210696 s BlockClosure&gt;repeat<br>
-1145213336 s VatTPManager class&gt;finalizationLoop<br>
-1145213520 s [] in VatTPManager class&gt;?<br>
<br>
EventualProcess 0xbc5c9174 priority 30<br>
-1134783048 s SharedQueue&gt;next<br>
-1134783140 s [] in Vat&gt;processSends<br>
-1134751716 s BlockClosure&gt;ifCurtailed:<br>
-1134783276 s Vat&gt;processSends<br>
-1134783984 s [] in EventualProcess&gt;setupContext<br>
<br>
Process 0xbc86c01c priority 60<br>
0xffaf44c0 I RFBEventSensor(InputSensor)&gt;userInterruptWatcher -1130865472: a(n) RFBEventSensor<br>
0xffaf44e0 I [] in RFBEventSensor(InputSensor)&gt;installInterruptWatcher -1130865472: a(n) RFBEventSensor<br>
0xffaf4500 I [] in BlockClosure&gt;newProcess -1132019908: a(n) BlockClosure<br>
<br>
Process 0xbc86c1dc priority 60<br>
widowed caller frame 8TŊĸ&quot;Ļr·Zžð·ð·Zžð·ļ§r·TTŊĸōr·ĻZžZžÂž4Zžir·tTŊĸT·ÂžüYžÂžĀ\žð··TŊĸĶ·sZžðZžð·8·s·ĀTŊĸ(õq·$ZžĪ*îZžüYžÂžĀ\ž ]đ·<br>
<br>
Process 0xbc86c3c8 priority 60<br>
0xffaf74c0 I SmalltalkImage&gt;lowSpaceWatcher -1207897132: a(n) SmalltalkImage<br>
0xffaf74e0 I [] in SmalltalkImage&gt;installLowSpaceWatcher -1207897132: a(n) SmalltalkImage<br>
0xffaf7500 I [] in BlockClosure&gt;newProcess -1132018968: a(n) BlockClosure<br>
<br>
Process 0xbc985ef0 priority 60<br>
widowed caller frame HÓŊĸúq·Ā\žð·ð·Ā\žð· úq·lÓŊĸ(õq·Ô\žĀ\žD\žļ·<br>
<br>
Segmentation fault<br>
<br>
<br>
Can&#39;t dump Smalltalk stack. Not in VM thread<br>
<br>
Most recent primitives<br>
wait<br>
signal<br>
millisecondClockValue<br>
wait<br>
signal<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
perform:with:<br>
basicNew:<br>
basicNew<br>
value:<br>
millisecondClockValue<br>
basicNew<br>
basicNew<br>
new:<br>
at:put:<br>
at:put:<br>
at:put:<br>
basicNew<br>
basicNew<br>
basicNew<br>
basicNew:<br>
at:put:<br>
replaceFrom:to:with:startingAt:<br>
replaceFrom:to:with:startingAt:<br>
basicNew:<br>
at:put:<br>
replaceFrom:to:with:startingAt:<br>
replaceFrom:to:with:startingAt:<br>
species<br>
basicNew:<br>
replaceFrom:to:with:startingAt:<br>
compare:with:collated:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
perform:withArguments:<br>
perform:<br>
species<br>
basicNew:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
species<br>
basicNew:<br>
basicReplaceFrom:to:with:startingAt:<br>
species<br>
basicNew:<br>
basicAt:put:<br>
basicAt:put:<br>
species<br>
basicNew:<br>
basicReplaceFrom:to:with:startingAt:<br>
species<br>
basicNew:<br>
basicAt:put:<br>
species<br>
basicNew:<br>
basicReplaceFrom:to:with:startingAt:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
primitiveGarbageCollect<br>
millisecondClockValue<br>
signal<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
suspend<br>
primitiveResume<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
suspend<br>
primitiveResume<br>
at:put:<br>
at:put:<br>
primSignal:atMilliseconds:<br>
millisecondClockValue<br>
wait<br>
millisecondClockValue<br>
millisecondClockValue<br>
wait<br>
signal<br>
at:put:<br>
at:put:<br>
millisecondClockValue<br>
primSignal:atMilliseconds:<br>
millisecondClockValue<br>
wait<br>
value<br>
wait<br>
signal<br>
wait<br>
value<br>
signal<br>
millisecondClockValue<br>
primSignal:atMilliseconds:<br>
millisecondClockValue<br>
wait<br>
signal<br>
primSocketConnectionStatus:<br>
millisecondClockValue<br>
basicNew:<br>
byteAt:put:<br>
byteAt:put:<br>
species<br>
basicNew:<br>
replaceFrom:to:with:startingAt:<br>
replaceFrom:to:with:startingAt:<br>
species<br>
basicNew:<br>
replaceFrom:to:with:startingAt:<br>
replaceFrom:to:with:startingAt:<br>
basicNew<br>
findNextHandlerContextStarting<br>
tempAt:<br>
tempAt:<br>
tempAt:put:<br>
valueNoContextSwitch<br>
tempAt:<br>
valueWithArguments:<br>
findNextUnwindContextUpTo:<br>
tempAt:<br>
tempAt:put:<br>
tempAt:<br>
terminateTo:<br>
value<br>
tempAt:put:<br>
findNextUnwindContextUpTo:<br>
terminateTo:<br>
primSocketConnectionStatus:<br>
value<br>
value<br>
millisecondClockValue<br>
primSocketConnectionStatus:<br>
millisecondClockValue<br>
millisecondClockValue<br>
basicNew<br>
valueNoContextSwitch<br>
millisecondClockValue<br>
wait<br>
signal<br>
at:put:<br>
at:put:<br>
at:put:<br>
millisecondClockValue<br>
primSignal:atMilliseconds:<br>
millisecondClockValue<br>
wait<br>
signal<br>
wait<br>
basicNew<br>
new:<br>
someInstance<br>
nextInstance<br>
at:put:<br>
species<br>
new:<br>
replaceFrom:to:with:startingAt:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
at:put:<br>
perform:withArguments:<br>
perform:<br>
species<br>
basicNew:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
basicAt:put:<br>
species<br>
basicNew:<br>
basicReplaceFrom:to:with:startingAt:<br>
species<br>
basicNew:<br>
basicAt:put:<br>
basicAt:put:<br>
species<br>
basicNew:<br>
basicReplaceFrom:to:with:startingAt:<br>
species<br>
basicNew:<br>
basicAt:put:<br>
species<br>
basicNew:<br>
basicReplaceFrom:to:with:startingAt:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
new:<br>
basicNew<br>
at:put:<br>
at:put:<br>
at:put:<br>
primitiveGarbageCollect<br>
<br>
<br>
</blockquote></div><br>