Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007070 [Squeak] Browser block always 05-28-08 00:07 05-29-08 19:47
Reporter sge View Status public  
Assigned To KenCausey
Priority immediate Resolution fixed  
Status closed   Product Version 3.10.1
Summary 0007070: Browser category Morphic-CandidatesForGo contains missing classes
Description Downloaded release 3.10.1 on 2008-05-27. The last category in the Browser is broken. Evaluating

(SystemOrganizer allInstances first listAtCategoryNamed: 'Morphic-CandidatesForGo')
    collect: [:each | Smalltalk at: each ifAbsent: [nil]]

results in

{nil . nil . nil . nil . ClassRepresentativeMorph . nil . nil . CommandTilesMorph . nil . DrawErrorMorph . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . PhraseWrapperMorph . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . nil . ViewerEntry . ViewerRow . nil . nil}

so selecting, e.g., BlobMorph from the class pane, gives a couple of walkbacks.
Additional Information If there's a simpler way to get the stack into the paste buffer, I missed it, so here are copies of the LazyListMorph items.

#('UndefinedObject(Object)>>doesNotUnderstand: #categories' 'Browser>>rawMessageCategoryList' 'PluggableMessageCategoryListMorph>>verifyContents'
'[] in Browser(Object)>>updateListsAndCodeIn: {[:aPane | aPane verifyContents]}' 'Array(SequenceableCollection)>>do:' 'Browser(Object)>>updateListsAndCodeIn:' 'Browser(CodeHolder)>>updateListsAndCodeIn:' 'Browser(CodeHolder)>>stepIn:' 'Browser(Object)>>stepAt:in:' 'SystemWindow>>stepAt:' 'StepMessage(MorphicAlarm)>>value:' 'WorldState>>runLocalStepMethodsIn:' 'WorldState>>runStepMethodsIn:' 'PasteUpMorph>>runStepMethods' 'WorldState>>doOneCycleNowFor:' 'WorldState>>doOneCycleFor:' 'PasteUpMorph>>doOneCycle'
'[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]}'
'[] in BlockContext>>newProcess {[self value. Processor terminateActive]}')

#('SystemDictionary(Object)>>error:' 'SystemDictionary(Dictionary)>>errorKeyNotFound'
'[] in SystemDictionary(Dictionary)>>at: {[self errorKeyNotFound]}' 'SystemDictionary(Dictionary)>>at:ifAbsent:' 'SystemDictionary(Dictionary)>>at:' 'Browser>>selectedClass' 'Browser>>setClassOrganizer' 'Browser>>classListIndex:' 'PluggableListMorph>>changeModelSelection:' 'PluggableListMorph>>mouseUp:' 'PluggableListMorph(Morph)>>handleMouseUp:' 'MouseButtonEvent>>sentTo:' nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
Attached Files  ReleaseTest-te...goryClasses.st [^] (868 bytes) 05-29-08 16:55

- Relationships
child of 0007076closed KenCausey [tests] The revision (5-29) of the release still leaves problems and 5 classes with no category in system 

- Notes
(0012204 - 1006 - 1192 - 1192 - 1192 - 1192 - 1192)
wiz
05-28-08 05:44

Hi sge,

Good bug find thanks for the early report.

I found that when I started getting errors I could not stop. Every attempt to reselect a different catagory brought up the debug window.
nil dnu catagories.

I closed the image (w/o saving) and reopened.

Being a little more cautious I got the error but this time I could get the browser to focus on a different catagory and the error chain stopped.



more data points:


My squeak 7174 (updated via the update stream from 7160) is free of the extra catagory.

So it would seem it was introduced in the condensing of changes.
I am assuming that 7175 did only that right?

This would make sense because there could be confusion when trying to condense a removal.

The workaround fix would be to make the next release w/o condensing the sources.

Then look in to what might be wrong with #condenseSources.

Or find I have guessed wrong and go back to the drawing board.

Hth,

Yours in service and curiosity, -Jerome Peace
 
(0012205 - 508 - 550 - 550 - 550 - 550 - 550)
wiz
05-28-08 05:53

I've upped the severity and the priority because this is a show stopper for the release of 3.10.1-7175

If condensing changes is causing this noticable problem then is it also causing less noticable ones as well?

I don't think you can risk the reputation of squeak by generally distributing 7175 until the problem is tracked down and fixed ( or worked around).

3.9 had a similar sticky, hard to get right problem towards its release. They are annoying and frustrating but (imo) you have to fix em.
 
(0012208 - 899 - 947 - 947 - 947 - 947 - 947)
KenCausey
05-28-08 15:39

Jerome, I agree this is serious but 3.10.1 is released, so we can't exactly stop the show at this point, unfortunately.

I believe this happened in the release image because of my use of ReleaseBuilderFor3dot10>>makeThreeTenRelease without detailed auditing. I removed obvious stuff I did not want to apply for 3.10.1 but I missed the changes related to morphic class removals in ReleaseBuilderFor3dot10>>unloadMorphicClasses. When I ran this I actually got an error in this class about a missing key on 'Morphic-CandidatesForGo'. I fixed it simplistically without properly thinking through the implications.

So one point is that this problem is only in the released image. If you take a 3.10-7159 image and update it to 3.10.1-7175 then you will not have this problem.

That said if someone has a fix/workaround that could be applied to an existing 3.10-7175 image I would appreciate it.
 
(0012209 - 201 - 201 - 201 - 201 - 201 - 201)
KenCausey
05-28-08 17:16

Klaus Witzel has proposed modifying 3.10.1-7175 on the FTP site to add a clear notice of this issue along with a fix. This avoids much of my complaint about having different images with the same name.
 
(0012210 - 428 - 511 - 511 - 511 - 511 - 511)
nicolas cellier
05-28-08 19:23

Could you try this workaround in contaminated image:

| toBeRemoved |
toBeRemoved := Set new.
SystemOrganization categories do: [:catName |
(SystemOrganization listAtCategoryNamed: catName) do: [:className |
(Smalltalk includesKey: className) ifFalse: [
    toBeRemoved add: className]]].
toBeRemoved do: [:each | SystemOrganization removeElement: each].

Then publish in updateStream if it make the symptoms disappear...
 
(0012213 - 58 - 58 - 58 - 58 - 58 - 58)
sge
05-29-08 00:49

The workaround from nicolas cellier works for me. Thanks!
 
(0012216 - 1667 - 1839 - 1839 - 1839 - 1839 - 1839)
wiz
05-29-08 03:14

Hi all,

Nicolas Cellier's goodie catches 36 classes. All in the Morphic-...toGo catagory.
This leaves 6 classes in the catagory that still have a presence but should be gone. None of them have methods that refer to them. Some have actual methods. Some don't.

So now I am really curious about what happened in the last step. How did we get these classes back. What else might have happened that we haven't found yet.

I am also of the opinion that if the updatestream produces a different outcome than the "release" this should be fixed.**

OT (a little) there is a metabug here as well. I call it the Midnite Programmer Bug. After some guys I know who would come in a midnight on a live timesharing system*. Work all night getting the next upgrade for the system going. In the morning when they were exausted and ready to go home to sleep the system looked ready to them. And they released it. Ready for the next days live audience.
Needless to say the audience found some very obvious bugs the programmers overlooked.

The cure (when time is available) is that a release needs time to ripen.
And for the midnite programmer bugs to be found and removed.
Pushing to meet a deadline is laudible.
Bugs getting into the system expectable.

What's hard is scheduling time for the release candidate phase.
Where it is expected that nothing will have to be changed.
But enough time is left to discover the Midnite bugs.

Yours in curiosity and service, --Jerome Peace

*I cut my teeth programming before the internet era.

**When this is fixed, we should end up with a something like 3.10.1-7176 as the next release candidate.

cheers -jer
 
(0012221 - 313 - 361 - 361 - 361 - 361 - 361)
wiz
05-29-08 17:00

ReleaseTest-te...goryClasses.st uploaded.

It does the test to check for catagories naming missing classes.

Fails in the image release of 7175. Passes in the update stream version of 7175.

I highly recommend this for inclusion in the next release attempt.

Yours in curiosity and service, --Jerome Peace
 
(0012223 - 912 - 1167 - 1167 - 1167 - 1167 - 1167)
KenCausey
05-29-08 19:04

I'm addressing this issue by replacing the copies of 3.10.1-7175-basic on the FTP site with a new one which includes a prominent note in the Welcome window mentioning the issue and include a link that fixes it with a single click. The code that is execute when you click is adapted from Nicolas' suggestion:

SystemOrganization categories do: [:catName |
  (SystemOrganization listAtCategoryNamed: catName)
    do: [:className |
      (Smalltalk includesKey: className) ifFalse: [
        Transcript show: 'Removing ', className printString, String cr.
         SystemOrganization removeElement: className]]].

SystemOrganization classify: #ClassRepresentativeMorph under: 'EToys-Scripting'.

#(CommandTilesMorph DrawErrorMorph PhraseWrapperMorph ViewerEntry ViewerRow)
    do: [ :symbol | SystemOrganization removeElement: symbol ].

SystemOrganization removeSystemCategory: 'Morphic-CandidatesForGo'.
 
(0012224 - 56 - 56 - 56 - 56 - 56 - 56)
KenCausey
05-29-08 19:47

Copy on FTP site now updated as well as platform copies.
 

- Issue History
Date Modified Username Field Change
05-28-08 00:07 sge New Issue
05-28-08 05:44 wiz Note Added: 0012204
05-28-08 05:53 wiz Note Added: 0012205
05-28-08 05:53 wiz Priority normal => immediate
05-28-08 05:53 wiz Severity minor => block
05-28-08 15:39 KenCausey Status new => assigned
05-28-08 15:39 KenCausey Assigned To  => KenCausey
05-28-08 15:39 KenCausey Note Added: 0012208
05-28-08 15:39 KenCausey version 3.10 => 3.10.1
05-28-08 17:16 KenCausey Note Added: 0012209
05-28-08 19:23 nicolas cellier Note Added: 0012210
05-29-08 00:49 sge Note Added: 0012213
05-29-08 03:14 wiz Note Added: 0012216
05-29-08 16:55 wiz File Added: ReleaseTest-te...goryClasses.st
05-29-08 17:00 wiz Note Added: 0012221
05-29-08 19:04 KenCausey Status assigned => resolved
05-29-08 19:04 KenCausey Fixed in Version  => 3.10.1
05-29-08 19:04 KenCausey Resolution open => fixed
05-29-08 19:04 KenCausey Note Added: 0012223
05-29-08 19:47 KenCausey Status resolved => closed
05-29-08 19:47 KenCausey Note Added: 0012224
05-31-08 03:36 wiz Relationship added child of 0007076


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
87 total queries executed.
56 unique queries executed.
Powered by Mantis Bugtracker