[squeak-dev] Image crashes just after start-up

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

[squeak-dev] Image crashes just after start-up

David Röthlisberger
Hello,

I have an image (3.9, several additional packages loaded) that crashes as soon as I
start it. It loads, then I see the World for maybe a second, and then, boom!, it's gone.
Is there any possibility to see what code has been executed just before the crash to
debug the problem? I do not get any debugger or any error msg that I could use to
locate the problem. Do you have any hints?

I heard of a VM that logs every msg send, it's described here, at the bottom:
http://www.smalltalkconsulting.com/squeak.html
This VM unfortunately doesn't work properly on my system, an Intel Mac.

Any hints are highly appreciated.

Cheers,
David

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Image crashes just after start-up

johnmci
If this is on a macintosh there should be a crash log in ~/Library/
Logs/CrashReporter/Squeak...
If so send me a copy.

Also I'd be glad to work with you to build a more current VM with  
message tracing on.

Also you can start the VM binary using gdb   then run, then when it  
crashs
type in  call (int) printAllStacks()
to get a stack trace of all the processes running


On Apr 14, 2008, at 8:31 AM, David Röthlisberger wrote:

> Hello,
>
> I have an image (3.9, several additional packages loaded) that  
> crashes as soon as I start it. It loads, then I see the World for  
> maybe a second, and then, boom!, it's gone.
> Is there any possibility to see what code has been executed just  
> before the crash to debug the problem? I do not get any debugger or  
> any error msg that I could use to locate the problem. Do you have  
> any hints?
>
> I heard of a VM that logs every msg send, it's described here, at  
> the bottom:
> http://www.smalltalkconsulting.com/squeak.html
> This VM unfortunately doesn't work properly on my system, an Intel  
> Mac.
>
> Any hints are highly appreciated.
>
> Cheers,
> David
>

--
=
=
=
========================================================================
John M. McIntosh <[hidden email]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
=
=
=
========================================================================



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Image crashes just after start-up

David Röthlisberger
Thanks to the help of John I found out that the image crashes when the method
CommandHistory class >> forgetAllGrabCommandsFrom: gets excuted.
I have the impression that the method ProtoObject >> nextObject is failing.
Does anybody know how this can happen and what can be done in that case?

I know a scenario that I need to execute in my image so that the crash happens on
start-up. When I save the image after I have executed this scenario, the image
crashes on start-up for sure. Do you know what kind of code could cause this
primitive in ProtoObject >> nextObject to fail?

This scenario builds up a Mondrian graph, so Morphic is heavily used. The size of the
graph doesn't matter though.


David

> If this is on a macintosh there should be a crash log in
> ~/Library/Logs/CrashReporter/Squeak...
> If so send me a copy.
>
> Also I'd be glad to work with you to build a more current VM with
> message tracing on.
>
> Also you can start the VM binary using gdb   then run, then when it crashs
> type in  call (int) printAllStacks()
> to get a stack trace of all the processes running
>
>
> On Apr 14, 2008, at 8:31 AM, David Röthlisberger wrote:
>
>> Hello,
>>
>> I have an image (3.9, several additional packages loaded) that crashes
>> as soon as I start it. It loads, then I see the World for maybe a
>> second, and then, boom!, it's gone.
>> Is there any possibility to see what code has been executed just
>> before the crash to debug the problem? I do not get any debugger or
>> any error msg that I could use to locate the problem. Do you have any
>> hints?
>>
>> I heard of a VM that logs every msg send, it's described here, at the
>> bottom:
>> http://www.smalltalkconsulting.com/squeak.html
>> This VM unfortunately doesn't work properly on my system, an Intel Mac.
>>
>> Any hints are highly appreciated.
>>
>> Cheers,
>> David
>>
>
> --
> ===========================================================================
> John M. McIntosh <[hidden email]>
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Image crashes just after start-up

johnmci
Set the SqueakMaxHeapSize in the info.plist to a bigger number 1GB  
versus 512MB and see if that makes a different.

I noted the VM crashs in
org.squeak.Squeak               0x000f4724 lookupMethodInClass + 84

but we'd need the stack back trace to understand where it was called  
from.


On Apr 15, 2008, at 2:20 AM, David Röthlisberger wrote:

> Thanks to the help of John I found out that the image crashes when  
> the method CommandHistory class >> forgetAllGrabCommandsFrom: gets  
> excuted.
> I have the impression that the method ProtoObject >> nextObject is  
> failing.
> Does anybody know how this can happen and what can be done in that  
> case?
>
> I know a scenario that I need to execute in my image so that the  
> crash happens on start-up. When I save the image after I have  
> executed this scenario, the image crashes on start-up for sure. Do  
> you know what kind of code could cause this primitive in ProtoObject  
> >> nextObject to fail?
>
> This scenario builds up a Mondrian graph, so Morphic is heavily  
> used. The size of the graph doesn't matter though.




--
=
=
=
========================================================================
John M. McIntosh <[hidden email]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
=
=
=
========================================================================



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Image crashes just after start-up

David Röthlisberger

> Set the SqueakMaxHeapSize in the info.plist to a bigger number 1GB
> versus 512MB and see if that makes a different.

I did this, but no, the problem remains.

> I noted the VM crashs in
> org.squeak.Squeak                  0x000f4724 lookupMethodInClass + 84
>
> but we'd need the stack back trace to understand where it was called from.

okay, I used gdb to get a stack trace when starting an image producing the crash:


Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xfb6004c4
0x000f4724 in lookupMethodInClass ()
(gdb) call (int) printAllStacks()
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
Process
453606372 [] in >forgetAllGrabCommandsFrom:
453605940 BlockContext>on:do:
453605848 BlockContext>ifError:
453605664 >forgetAllGrabCommandsFrom:
453605388 >resetAllHistory
453604560 >startUp:
445250644 [] in SystemDictionary>send:toClassesNamedIn:with:
445250420 OrderedCollection>do:
445250328 SystemDictionary>send:toClassesNamedIn:with:
445250236 SystemDictionary>processStartUpList:
445232196 SmalltalkImage>snapshot:andQuit:embedded:
445232104 SmalltalkImage>snapshot:andQuit:
445232012 SmalltalkImage>saveSession
445231828 TheWorldMenu>doMenuItem:with:
445231736 [] in MenuItemMorph>invokeWithEvent:
445231644 BlockContext>ensure:
445231552 Cursor>showWhile:
445231416 MenuItemMorph>invokeWithEvent:
445231324 MenuItemMorph>mouseUp:
445231232 MenuItemMorph>handleMouseUp:
445231100 MouseButtonEvent>sentTo:
445231008 Morph>handleEvent:
445230916 MorphicEventDispatcher>dispatchDefault:with:
445230824 MorphicEventDispatcher>dispatchEvent:with:
445230732 Morph>processEvent:using:
445230640 MorphicEventDispatcher>dispatchDefault:with:
445230532 MorphicEventDispatcher>dispatchEvent:with:
445230400 Morph>processEvent:using:
445230308 Morph>processEvent:
445230216 MenuMorph>handleFocusEvent:
445229940 [] in HandMorph>sendFocusEvent:to:clear:
445230032 [] in PasteUpMorph>becomeActiveDuring:
445229848 BlockContext>on:do:
445229756 PasteUpMorph>becomeActiveDuring:
445229572 HandMorph>sendFocusEvent:to:clear:
445229480 HandMorph>sendEvent:focus:clear:
445229388 HandMorph>sendMouseEvent:
445229244 HandMorph>handleEvent:
445228988 HandMorph>processEvents
445229080 [] in WorldState>doOneCycleNowFor:
445228896 SequenceableCollection>do:
445228804 WorldState>handsDo:
445228712 WorldState>doOneCycleNowFor:
445228620 WorldState>doOneCycleFor:
445228528 PasteUpMorph>doOneCycle
441031360 [] in >spawnNewProcess
441031452 [] in BlockContext>newProcess



Process
453585108 >finalizationProcess
453584832 [] in >restartFinalizationProcess
453584924 [] in BlockContext>newProcess



Process
307823020 >?
307823360 [] in >?
307823452 [] in BlockContext>?


Process
453500076 InputSensor>userInterruptWatcher
453499892 [] in InputSensor>installInterruptWatcher
453499984 [] in BlockContext>newProcess

Process
453714748 Delay>wait
453714840 [] in EventSensor>eventTickler
453714656 BlockContext>on:do:
453500572 EventSensor>eventTickler
453500296 [] in EventSensor>installEventTickler
453500480 [] in BlockContext>newProcess

Process
453501020 SystemDictionary>lowSpaceWatcher
453501112 [] in SystemDictionary>installLowSpaceWatcher
453501204 [] in BlockContext>newProcess


warning: Unable to restore previously selected frame.
$1 = 2



Does this shed some light on it?
To me this means that one or more objects are corruptly saved in memory and on
start-up the last executed method (#forgetAllGrabCommandsFrom:) tries to access all
objects in the image, which leads to the crash. The question is now what caused those
objects to get saved in a corrupt manner?

David


> On Apr 15, 2008, at 2:20 AM, David Röthlisberger wrote:
>
>> Thanks to the help of John I found out that the image crashes when the
>> method CommandHistory class >> forgetAllGrabCommandsFrom: gets excuted.
>> I have the impression that the method ProtoObject >> nextObject is
>> failing.
>> Does anybody know how this can happen and what can be done in that case?
>>
>> I know a scenario that I need to execute in my image so that the crash
>> happens on start-up. When I save the image after I have executed this
>> scenario, the image crashes on start-up for sure. Do you know what
>> kind of code could cause this primitive in ProtoObject >> nextObject
>> to fail?
>>
>> This scenario builds up a Mondrian graph, so Morphic is heavily used.
>> The size of the graph doesn't matter though.
>