Opened 14 years ago
Closed 14 years ago
#1576 closed defect (fixed)
Kaleidoscope, Breakout, StackAttack crash on relaunch in Sugar 0.84.7 (XO-1/F11)
Reported by: | mavrothal | Owned by: | bert |
---|---|---|---|
Priority: | High | Milestone: | Unspecified |
Component: | Etoys | Version: | 0.84.x |
Severity: | Major | Keywords: | |
Cc: | edw@… | Distribution/OS: | OLPC |
Bug Status: | New |
Description
These Etoys based applications crash when they have a journal entry in the XO-1 running F11-XO1/os9 updated to Sugar 0.84.7. Journal entry is viewed as shared application and tries to open two instances resulting in the crash. Nothing in the activitiies logs other than a 3rd line with the journal entry id.
Change History (6)
comment:1 Changed 14 years ago by bert
- Bug Status changed from Unconfirmed to New
- Priority changed from Unspecified by Maintainer to High
- Severity changed from Unspecified to Major
comment:2 Changed 14 years ago by bert
- Cc edw@… added
comment:3 Changed 14 years ago by edw
Thanks for reporting this bug!
I am the author of Kaleidoscope, and I will be working on
the next version in december. I will definitely try
and fix this in the next version.
Thanks again
Wolfgang
comment:4 Changed 14 years ago by bert
Wolfgang, I think there is nothing wrong with your activity. We really need to fix Etoys to not save the project automatically on exit if it was loaded from the bundle, I think. Also, when resuming your activity, Etoys should not load the project from the bundle but only the one from the Journal. This would allow customization.
comment:5 Changed 14 years ago by bert
Fix available upstream.
comment:6 Changed 14 years ago by bert
- Resolution set to fixed
- Status changed from new to closed
Fixed in etoys-4.0.2339.
Thanks for taking the time to report this. I'm sure others ran into this too.
The activities don't actually "crash". You just get an annoying error on resuming. I tried Kaleidoscope. If you click cancel, then okay, then close the pink notifier, and right click to restore the screen, it is fine.
Analysis: What happens is that on resume, the project is loaded twice. Once from the activity bundle, and once from the journal. The first load from the bundle succeeds. The second load from the datastore fails, because the first load triggered the security sand boxing, and the datastore delivers the file outside of the Etoys sandbox directory. This is because F11 does not have Rainbow enabled yet, so Etoys uses its own sand boxing for security. With Rainbow enabled, both loads do succeed (which is still wrong but no error gets shown).
Solution: Simplest and safest is to prevent saving anything to the Journal when exiting such an activity, and also ignore any saved project when resuming.
I opened an upstream ticket for this: http://tracker.squeakland.org/browse/SQ-604
You may want to open a downstream ticket at http://dev.laptop.org/