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 |
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 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 |
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]] 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 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 |
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 |
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 |
Free forum by Nabble | Edit this page |