Crash in Store during load in VW7.7

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

Crash in Store during load in VW7.7

Mark Plas

Hi,

 

We have a crash when trying to load code into an image where a shared variable has been removed.

 

Here's the scenario:

 

1)      Create a bundle 'TestBundle'

2)      Create a package 'TestPackage' and put it into 'TestBundle'

3)      Create a class 'TestClass' in 'TestPackage'

4)      Add a shared variable to 'TestClass'

5)      Publish 'TestBundle' binary (I haven't tried it not-binary) version 1.0

6)      Save this image

7)      Remove the shared variable on 'TestClass'

8)      Publish 'TestBundle' binary version 1.1

9)      Don’t save the image, just quit it

10)   Start the saved image again

11)   Try to load version '1.1' from 'TestBundle' over the already loaded 'TestBundle 1.0'

12)   è crash

 

 

Is there a fix for it?

 

Thanks,

Mark

 

Here's the stacktrace:

 

Unhandled exception: Message not understood: #definesName:in:

Store.Glorp.StoreBundle(Object)>>doesNotUnderstand:

optimized [] in CodeReader>>removeDeletedStatics:within:

Set>>do:

CodeReader>>removeDeletedStatics:within:

optimized [] in CodeReader>>installCodeChangesTo:within:

BlockClosure>>on:do:

optimized [] in SystemUtils class>>modifySystem:

BlockClosure>>ensure:

SystemUtils class>>modifySystem:

CodeReader>>installCodeChangesTo:within:

CodeReader>>updateCodeInComponent:from:within:

optimized [] in CodeComponent>>updateCodeReadBy:from:within:

BlockClosure>>on:do:

Store.PackageModel class(CodeComponent class)>>handleCodeReaderSignalsDo:for:

Store.PackageModel(CodeComponent)>>updateCodeReadBy:from:within:

Store.PackageModel>>updateFrom:within:

optimized [] in [] in [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

optimized [] in [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

optimized [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

Store.Glorp.StorePackage>>binLoadWithin:using:

optimized [] in ShadowBundleCompileManager>>compile

OrderedCollection>>do:

ShadowBundleCompileManager>>compile

optimized [] in ShadowBundleCompileManager>>atomicCompileWith:

BlockClosure>>on:do:

optimized [] in SystemUtils class>>modifySystem:

BlockClosure>>ensure:

SystemUtils class>>modifySystem:

ShadowBundleCompileManager>>atomicCompileWith:

Store.AtomicCompilationManager>>atomicCompileAndInstallWith:

optimized [] in Store.AtomicCompilationManager>>compileAndInstall

optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:

BlockClosure>>ensure:

Store.StoreProgressOverlay class>>subsumeAll:while:

optimized [] in Store.StoreProgressOverlay class>>feedbackOnActiveProcessWhile:

BlockClosure>>cull:

WindowManager(Object)>>ifNil:ifNotNil:

Store.StoreProgressOverlay class>>feedbackOnActiveProcessWhile:

optimized [] in [] in Store.AtomicCompilationManager>>compileAndInstall

LiteralBindingReference(GeneralBindingReference)>>ifDefinedDo:elseDo:

optimized [] in Store.AtomicCompilationManager>>compileAndInstall

BlockClosure>>ensure:

Store.AtomicCompilationManager>>compileAndInstall

Store.Glorp.StoreBundle(Store.Glorp.StorePundle)>>atomicCompileAndLoad

optimized [] in Store.Glorp.StorePundle>>loadSource

BlockClosure>>ensure:

Store.Glorp.StoreBundle(Store.Glorp.StorePundle)>>loadSource

Store.Bundle>>loadSrc

Refactory.Browser.BrowserNavigator>>loadPundle:

[] in [] in Refactory.Browser.BrowserNavigator>>storeLoadPundle

SortedCollection(OrderedCollection)>>do:

[] in Refactory.Browser.BrowserNavigator>>storeLoadPundle

Store.DBAccess>>doIfOnlineImage:

Refactory.Browser.BrowserNavigator>>storeLoadPundle

Refactory.Browser.RBCommand>>perform:on:

Refactory.Browser.RBCommand>>performWith:

Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>performAction:

Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>action:

optimized [] in Refactory.Browser.BrowserApplicationModel>>createActionMenuItemFrom:

MultiSequenceTreeController(SequenceController)>>dispatchBlockClosure:

MultiSequenceTreeController(TreeController)>>dispatchMenuSelection:

MultiSequenceTreeController(ControllerWithMenu)>>processMenu:at:centered:

MultiSequenceTreeController(ControllerWithMenu)>>processMenuAt:centered:

MultiSequenceTreeController(ControllerWithMenu)>>yellowButtonPressedEvent:

MultiSequenceTreeController(SequenceController)>>yellowButtonPressedEvent:

YellowButtonPressedEvent>>dispatchTo:

MultiSequenceTreeController(ControllerWithMenu)>>handleEvent:

EventDispatcher>>dispatch:to:

EventDispatcher>>dispatchEvent:

YellowButtonPressedEvent(Event)>>dispatch

YellowButtonPressedEvent(Event)>>dispatchForWindowManager:

optimized [] in WindowManager>>safelyDispatchForWindowManager:

BlockClosure>>on:do:

WindowManager>>safelyDispatchForWindowManager:

WindowManager>>processNextEvent

optimized [] in [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in Process class>>forBlock:priority:

 

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Crash in Store during load in VW7.7

Steven Kelly

Looks like a similar situation to Resolution 97439, but with a slightly different selector that needs implementing in StoreBundle?

 

Steve

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Mark Plas
Sent: 9. huhtikuuta 2010 10:25
To: VWNC NC
Subject: [vwnc] Crash in Store during load in VW7.7

 

Hi,

 

We have a crash when trying to load code into an image where a shared variable has been removed.

 

Here's the scenario:

 

1)      Create a bundle 'TestBundle'

2)      Create a package 'TestPackage' and put it into 'TestBundle'

3)      Create a class 'TestClass' in 'TestPackage'

4)      Add a shared variable to 'TestClass'

5)      Publish 'TestBundle' binary (I haven't tried it not-binary) version 1.0

6)      Save this image

7)      Remove the shared variable on 'TestClass'

8)      Publish 'TestBundle' binary version 1.1

9)      Don’t save the image, just quit it

10)   Start the saved image again

11)   Try to load version '1.1' from 'TestBundle' over the already loaded 'TestBundle 1.0'

12)   è crash

 

 

Is there a fix for it?

 

Thanks,

Mark

 

Here's the stacktrace:

 

Unhandled exception: Message not understood: #definesName:in:

Store.Glorp.StoreBundle(Object)>>doesNotUnderstand:

optimized [] in CodeReader>>removeDeletedStatics:within:

Set>>do:

CodeReader>>removeDeletedStatics:within:

optimized [] in CodeReader>>installCodeChangesTo:within:

BlockClosure>>on:do:

optimized [] in SystemUtils class>>modifySystem:

BlockClosure>>ensure:

SystemUtils class>>modifySystem:

CodeReader>>installCodeChangesTo:within:

CodeReader>>updateCodeInComponent:from:within:

optimized [] in CodeComponent>>updateCodeReadBy:from:within:

BlockClosure>>on:do:

Store.PackageModel class(CodeComponent class)>>handleCodeReaderSignalsDo:for:

Store.PackageModel(CodeComponent)>>updateCodeReadBy:from:within:

Store.PackageModel>>updateFrom:within:

optimized [] in [] in [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

optimized [] in [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

optimized [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

Store.Glorp.StorePackage>>binLoadWithin:using:

optimized [] in ShadowBundleCompileManager>>compile

OrderedCollection>>do:

ShadowBundleCompileManager>>compile

optimized [] in ShadowBundleCompileManager>>atomicCompileWith:

BlockClosure>>on:do:

optimized [] in SystemUtils class>>modifySystem:

BlockClosure>>ensure:

SystemUtils class>>modifySystem:

ShadowBundleCompileManager>>atomicCompileWith:

Store.AtomicCompilationManager>>atomicCompileAndInstallWith:

optimized [] in Store.AtomicCompilationManager>>compileAndInstall

optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:

BlockClosure>>ensure:

Store.StoreProgressOverlay class>>subsumeAll:while:

optimized [] in Store.StoreProgressOverlay class>>feedbackOnActiveProcessWhile:

BlockClosure>>cull:

WindowManager(Object)>>ifNil:ifNotNil:

Store.StoreProgressOverlay class>>feedbackOnActiveProcessWhile:

optimized [] in [] in Store.AtomicCompilationManager>>compileAndInstall

LiteralBindingReference(GeneralBindingReference)>>ifDefinedDo:elseDo:

optimized [] in Store.AtomicCompilationManager>>compileAndInstall

BlockClosure>>ensure:

Store.AtomicCompilationManager>>compileAndInstall

Store.Glorp.StoreBundle(Store.Glorp.StorePundle)>>atomicCompileAndLoad

optimized [] in Store.Glorp.StorePundle>>loadSource

BlockClosure>>ensure:

Store.Glorp.StoreBundle(Store.Glorp.StorePundle)>>loadSource

Store.Bundle>>loadSrc

Refactory.Browser.BrowserNavigator>>loadPundle:

[] in [] in Refactory.Browser.BrowserNavigator>>storeLoadPundle

SortedCollection(OrderedCollection)>>do:

[] in Refactory.Browser.BrowserNavigator>>storeLoadPundle

Store.DBAccess>>doIfOnlineImage:

Refactory.Browser.BrowserNavigator>>storeLoadPundle

Refactory.Browser.RBCommand>>perform:on:

Refactory.Browser.RBCommand>>performWith:

Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>performAction:

Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>action:

optimized [] in Refactory.Browser.BrowserApplicationModel>>createActionMenuItemFrom:

MultiSequenceTreeController(SequenceController)>>dispatchBlockClosure:

MultiSequenceTreeController(TreeController)>>dispatchMenuSelection:

MultiSequenceTreeController(ControllerWithMenu)>>processMenu:at:centered:

MultiSequenceTreeController(ControllerWithMenu)>>processMenuAt:centered:

MultiSequenceTreeController(ControllerWithMenu)>>yellowButtonPressedEvent:

MultiSequenceTreeController(SequenceController)>>yellowButtonPressedEvent:

YellowButtonPressedEvent>>dispatchTo:

MultiSequenceTreeController(ControllerWithMenu)>>handleEvent:

EventDispatcher>>dispatch:to:

EventDispatcher>>dispatchEvent:

YellowButtonPressedEvent(Event)>>dispatch

YellowButtonPressedEvent(Event)>>dispatchForWindowManager:

optimized [] in WindowManager>>safelyDispatchForWindowManager:

BlockClosure>>on:do:

WindowManager>>safelyDispatchForWindowManager:

WindowManager>>processNextEvent

optimized [] in [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in Process class>>forBlock:priority:

 

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Crash in Store during load in VW7.7

Mark Plas

Yes, it looks like some methods haven't been moved to the Glorp-variant of Bundle. We added some of them to get past this crash and it seemed to work but I'd rather see an 'official' fix that gets into a new 7.7.1(?) release instead of having our own patches.

 

From: Steven Kelly [mailto:[hidden email]]
Sent: vrijdag 9 april 2010 9:53
To: Mark Plas; VWNC NC
Subject: RE: [vwnc] Crash in Store during load in VW7.7

 

Looks like a similar situation to Resolution 97439, but with a slightly different selector that needs implementing in StoreBundle?

 

Steve

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Mark Plas
Sent: 9. huhtikuuta 2010 10:25
To: VWNC NC
Subject: [vwnc] Crash in Store during load in VW7.7

 

Hi,

 

We have a crash when trying to load code into an image where a shared variable has been removed.

 

Here's the scenario:

 

1)      Create a bundle 'TestBundle'

2)      Create a package 'TestPackage' and put it into 'TestBundle'

3)      Create a class 'TestClass' in 'TestPackage'

4)      Add a shared variable to 'TestClass'

5)      Publish 'TestBundle' binary (I haven't tried it not-binary) version 1.0

6)      Save this image

7)      Remove the shared variable on 'TestClass'

8)      Publish 'TestBundle' binary version 1.1

9)      Don’t save the image, just quit it

10)   Start the saved image again

11)   Try to load version '1.1' from 'TestBundle' over the already loaded 'TestBundle 1.0'

12)   è crash

 

 

Is there a fix for it?

 

Thanks,

Mark

 

Here's the stacktrace:

 

Unhandled exception: Message not understood: #definesName:in:

Store.Glorp.StoreBundle(Object)>>doesNotUnderstand:

optimized [] in CodeReader>>removeDeletedStatics:within:

Set>>do:

CodeReader>>removeDeletedStatics:within:

optimized [] in CodeReader>>installCodeChangesTo:within:

BlockClosure>>on:do:

optimized [] in SystemUtils class>>modifySystem:

BlockClosure>>ensure:

SystemUtils class>>modifySystem:

CodeReader>>installCodeChangesTo:within:

CodeReader>>updateCodeInComponent:from:within:

optimized [] in CodeComponent>>updateCodeReadBy:from:within:

BlockClosure>>on:do:

Store.PackageModel class(CodeComponent class)>>handleCodeReaderSignalsDo:for:

Store.PackageModel(CodeComponent)>>updateCodeReadBy:from:within:

Store.PackageModel>>updateFrom:within:

optimized [] in [] in [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

optimized [] in [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

optimized [] in Store.Glorp.StorePackage>>binLoadWithin:using:

BlockClosure>>on:do:

Store.Glorp.StorePackage>>binLoadWithin:using:

optimized [] in ShadowBundleCompileManager>>compile

OrderedCollection>>do:

ShadowBundleCompileManager>>compile

optimized [] in ShadowBundleCompileManager>>atomicCompileWith:

BlockClosure>>on:do:

optimized [] in SystemUtils class>>modifySystem:

BlockClosure>>ensure:

SystemUtils class>>modifySystem:

ShadowBundleCompileManager>>atomicCompileWith:

Store.AtomicCompilationManager>>atomicCompileAndInstallWith:

optimized [] in Store.AtomicCompilationManager>>compileAndInstall

optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:

BlockClosure>>ensure:

Store.StoreProgressOverlay class>>subsumeAll:while:

optimized [] in Store.StoreProgressOverlay class>>feedbackOnActiveProcessWhile:

BlockClosure>>cull:

WindowManager(Object)>>ifNil:ifNotNil:

Store.StoreProgressOverlay class>>feedbackOnActiveProcessWhile:

optimized [] in [] in Store.AtomicCompilationManager>>compileAndInstall

LiteralBindingReference(GeneralBindingReference)>>ifDefinedDo:elseDo:

optimized [] in Store.AtomicCompilationManager>>compileAndInstall

BlockClosure>>ensure:

Store.AtomicCompilationManager>>compileAndInstall

Store.Glorp.StoreBundle(Store.Glorp.StorePundle)>>atomicCompileAndLoad

optimized [] in Store.Glorp.StorePundle>>loadSource

BlockClosure>>ensure:

Store.Glorp.StoreBundle(Store.Glorp.StorePundle)>>loadSource

Store.Bundle>>loadSrc

Refactory.Browser.BrowserNavigator>>loadPundle:

[] in [] in Refactory.Browser.BrowserNavigator>>storeLoadPundle

SortedCollection(OrderedCollection)>>do:

[] in Refactory.Browser.BrowserNavigator>>storeLoadPundle

Store.DBAccess>>doIfOnlineImage:

Refactory.Browser.BrowserNavigator>>storeLoadPundle

Refactory.Browser.RBCommand>>perform:on:

Refactory.Browser.RBCommand>>performWith:

Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>performAction:

Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>action:

optimized [] in Refactory.Browser.BrowserApplicationModel>>createActionMenuItemFrom:

MultiSequenceTreeController(SequenceController)>>dispatchBlockClosure:

MultiSequenceTreeController(TreeController)>>dispatchMenuSelection:

MultiSequenceTreeController(ControllerWithMenu)>>processMenu:at:centered:

MultiSequenceTreeController(ControllerWithMenu)>>processMenuAt:centered:

MultiSequenceTreeController(ControllerWithMenu)>>yellowButtonPressedEvent:

MultiSequenceTreeController(SequenceController)>>yellowButtonPressedEvent:

YellowButtonPressedEvent>>dispatchTo:

MultiSequenceTreeController(ControllerWithMenu)>>handleEvent:

EventDispatcher>>dispatch:to:

EventDispatcher>>dispatchEvent:

YellowButtonPressedEvent(Event)>>dispatch

YellowButtonPressedEvent(Event)>>dispatchForWindowManager:

optimized [] in WindowManager>>safelyDispatchForWindowManager:

BlockClosure>>on:do:

WindowManager>>safelyDispatchForWindowManager:

WindowManager>>processNextEvent

optimized [] in [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in WindowManager>>newProcess

BlockClosure>>on:do:

optimized [] in Process class>>forBlock:priority:

 

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Crash in Store during load in VW7.7

Samuel S. Shuster-2
In reply to this post by Mark Plas
Mark:

> Here's the scenario:
>  
> 1)      Create a bundle 'TestBundle'
> 2)      Create a package 'TestPackage' and put it into 'TestBundle'
> 3)      Create a class 'TestClass' in 'TestPackage'
> 4)      Add a shared variable to 'TestClass'
> 5)      Publish 'TestBundle' binary (I haven't tried it not-binary) version 1.0
> 6)      Save this image
> 7)      Remove the shared variable on 'TestClass'
> 8)      Publish 'TestBundle' binary version 1.1
> 9)      Don’t save the image, just quit it
> 10)   Start the saved image again
> 11)   Try to load version '1.1' from 'TestBundle' over the already loaded 'TestBundle 1.0'
> 12)   è crash
>  
>  
> Is there a fix for it?

Not per se.  We have created AR 59860 which will be fixed in 7.7.1.

The fix though is simple. Add

Store.StoreBundle >> definesName: aSymbol in: aNameSpace
        "Bundles don't define stuff as such"

        ^false

                                And So It Goes
                                     Sames
______________________________________________________________________

Samuel S. Shuster [|]
VisualWorks Engineering, Store Project
Smalltalk Enables Success -- What Are YOU Using?





_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Crash in Store during load in VW7.7

Mark Plas
Thanks Samuel!

-----Original Message-----
From: Samuel S. Shuster [mailto:[hidden email]]
Sent: vrijdag 9 april 2010 19:22
To: Mark Plas
Cc: VWNC NC
Subject: Re: [vwnc] Crash in Store during load in VW7.7

Mark:

> Here's the scenario:
>  
> 1)      Create a bundle 'TestBundle'
> 2)      Create a package 'TestPackage' and put it into 'TestBundle'
> 3)      Create a class 'TestClass' in 'TestPackage'
> 4)      Add a shared variable to 'TestClass'
> 5)      Publish 'TestBundle' binary (I haven't tried it not-binary) version 1.0
> 6)      Save this image
> 7)      Remove the shared variable on 'TestClass'
> 8)      Publish 'TestBundle' binary version 1.1
> 9)      Don't save the image, just quit it
> 10)   Start the saved image again
> 11)   Try to load version '1.1' from 'TestBundle' over the already loaded 'TestBundle 1.0'
> 12)   è crash
>  
>  
> Is there a fix for it?

Not per se.  We have created AR 59860 which will be fixed in 7.7.1.

The fix though is simple. Add

Store.StoreBundle >> definesName: aSymbol in: aNameSpace
        "Bundles don't define stuff as such"

        ^false

                                And So It Goes
                                     Sames
______________________________________________________________________

Samuel S. Shuster [|]
VisualWorks Engineering, Store Project
Smalltalk Enables Success -- What Are YOU Using?





_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc