When trying to update the base image [1], I now get a network error after CommandLine-tpr.9. Clicking on "Retry" produces the result from below. AFAICT, CI fails in the same way [2].
Fabio -- On Mon, Feb 5, 2018 at 5:54 PM Nicolas Cellier <[hidden email]> wrote:
|
In reply to this post by Nicolas Cellier
Hi Nicolas,
Bert?
|
On Mon, 5 Feb 2018, Eliot Miranda wrote:
> Hi Nicolas, > > > On Feb 5, 2018, at 8:54 AM, Nicolas Cellier <[hidden email]> wrote: > > Hi Eliot, > the process you are proposing is not necessary. > Bert modified mcm process so that changes are grouped, avoiding most load-order problems we had previously. > > The problem here was that I was working on a different feature requiring a mcm (I think due to a postscript or something like that). > Normally, I update all the packages from the image version or the repository version when publishing an update map. > But this time I didn't, I think because I experienced time-out when trying to do so... > So I manually updated only the part I was working on (Kernel), thus the mistake... > > > I don't understand. If the packages are loaded in the other order the code goes missing temporarily and the image can crash. Update maps enforce the ordering and fix the problem. Whatever grouping Bert has > engineered is a good thing, but the only thing I can see that we have to guarantee ordering is update maps. > Bert? the one that the method was moved to) are in the same update map, it'll just work. What Bert did was to make the order of the packages in the update map irrelevant when you move a method from one package to another. In the current case the version of the package the method was moved to was not part of the update map, so the method got lost during the update. Levente > > > 2018-02-05 17:17 GMT+01:00 Eliot Miranda <[hidden email]>: > Hi All, > > On Feb 5, 2018, at 7:25 AM, Marcel Taeumel <[hidden email]> wrote: > > Object >> #currentHand was moved from "Kernel" to "Morphic" back then. > > > I don't want to flog a dead horse, but... > Do we document the correct approach anywhere easily visible? When moving code between packages when that code is needed, the correct way is to... > > 1. Commit the package to which the code is moving, /not/ committing the package from which it has moved yet > 2. Commit an update configuration > 3. Commit the package from which the code has moved > > Hence on update the package to which the code is moving is loaded first, leaving the other package dirty but the code still present, and then the package from which the code has moved is loaded, > leaving the code in place at all times. > > This is simple and perhaps non-obvious. We need to have this, plus similar verbiage about delegate system changes, documented and visible to our users. > > > Best, > Marcel > > Am 05.02.2018 16:20:04 schrieb Levente Uzonyi <[hidden email]>: > > Hi All, > > I went ahead and removed update-nice.422 from the Trunk. The only > difference between update-nice.422 and update-bf.422 was that the former > included Morphic-mt.1350 while the latter referenced Morphic-dtl.1374. > This was a significant difference, because after loading Morphic-mt.1350, > Object >> #currentHand and friends were temporarily removed from the > image, which somehow resulted in the removal of the UI process without an > emergency evaluator ever appearing. I think that's something to be > investigated. > > After this change, I could successfully update the latest Trunk image > available on files.squeak.org. > > I could do this removal only because the members of the Squeak Oversight > Board group on source.squeak.org have not been updated since 2016. For the > very same reason, Nicolas couldn't have done this change. > > Levente > > On Sun, 4 Feb 2018, Bert Freudenberg wrote: > > > Log in to source.squeak.org, trunk repo, "edit configs", pick mine, delete. > > > > Before that you might download the config you're about to delete since there is no backup. > > > > - Bert - > > > > On 2 February 2018 at 21:39, Nicolas Cellier wrote: > > Just in case, I've aligned update-nice.422 with update-bf.422, hope it helps... > > > > 2018-02-02 21:34 GMT+01:00 Nicolas Cellier : > > So the necessary Morphic-dtl.1362.mcz was not in update-nice.422, apologies. > > update-nice.422 should be updated. > > > > Now I see a concurrent update-bf.422, how will it work? > > > > 2018-02-02 21:11 GMT+01:00 Nicolas Cellier : > > Hi, > > I think that it's related to The Trunk: Kernel-dtl.1123.mcz > > http://source.squeak.org/trunk/Kernel-dtl.1123.diff > > > > The missing methods are moved in The Trunk: Morphic-dtl.1362.mcz > > http://source.squeak.org/trunk/Morphic-dtl.1362.diff > > > > So a proper mcm configuration should solve it > > > > 2018-01-30 23:47 GMT+01:00 Fabio Niephaus : > > Clicking the update button another time seemed to have fixed the missing snapshot problem. I tried it a couple of times, but maybe got unlucky with the SqueakSource server. > > Anyway, now installing Kernel-nice.1127 freezes the image and I'm unable to interrupt it. SqueakDebug.log reveals the problem: > > > > --- The full stack --- > > TextMorph(Object)>>doesNotUnderstand: #currentHand > > [] in TextMorph>>createParagraph > > BlockClosure>>ensure: > > TextMorph>>createParagraph > > TextMorph>>paragraph > > TextMorph>>newContents: > > TextMorph>>contentsAsIs: > > MorphicProject>>composeDisplayTextIntoForm: > > DisplayText>>composeForm > > DisplayText>>form > > DisplayText>>displayOn:at:clippingBox:rule:fillColor: > > DisplayText(DisplayObject)>>displayOn:at: > > ByteString(String)>>displayOn:at:textColor: > > ByteString(String)>>displayOn:at: > > ByteString(String)>>displayAt: > > Project class>>tryEmergencyEvaluatorForRecovery: > > Project class>>handlePrimitiveError: > > MorphicProject(Object)>>primitiveError: > > MorphicProject(Project)>>handleFatalDrawingError: > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > > > Could someone please look into this? Thanks! > > > > Fabio > > > > image.png > > > > ---------- Forwarded message --------- > > From: Bert Freudenberg > > Date: Tue, Jan 30, 2018 at 11:30 PM > > Subject: Re: [squeak-dev] Another missing snapshot: SmallLand-ColorTheme-fbs.6 > > To: The general-purpose Squeak developers list > > > > > > Looks fine to me: > > > > http://source.squeak.org/trunk/SmallLand-ColorTheme-fbs.6.mcz > > > > - Bert - > > > > -- > > > > On 30 January 2018 at 22:03, Fabio Niephaus wrote: > > Hi all, > > > > Updating the trunk base image [1] throws another missing snapshot error. This time it's SmallLand-ColorTheme-fbs.6. Could someone please fix this as it's blocking trunk builds? > > > > Thanks, > > Fabio > > > > [1] http://files.squeak.org/base/Squeak-trunk/base.zip > > > > image.png > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
In reply to this post by fniephaus
Does it happen on 64-bit? Is there a 64-bit base image?
Levente On Mon, 5 Feb 2018, Fabio Niephaus wrote: > When trying to update the base image [1], I now get a network error after CommandLine-tpr.9. Clicking on "Retry" produces the result from below. AFAICT, CI fails in the same way [2]. > Fabio > > [1] http://files.squeak.org/base/Squeak-trunk/base.zip > [2] https://travis-ci.org/squeak-smalltalk/squeak-app/jobs/337607796#L3891 > > image.png -- > > On Mon, Feb 5, 2018 at 5:54 PM Nicolas Cellier <[hidden email]> wrote: > Hi Eliot, > the process you are proposing is not necessary. > Bert modified mcm process so that changes are grouped, avoiding most load-order problems we had previously. > > The problem here was that I was working on a different feature requiring a mcm (I think due to a postscript or something like that). > Normally, I update all the packages from the image version or the repository version when publishing an update map. > But this time I didn't, I think because I experienced time-out when trying to do so... > So I manually updated only the part I was working on (Kernel), thus the mistake... > > > 2018-02-05 17:17 GMT+01:00 Eliot Miranda <[hidden email]>: > Hi All, > > On Feb 5, 2018, at 7:25 AM, Marcel Taeumel <[hidden email]> wrote: > > Object >> #currentHand was moved from "Kernel" to "Morphic" back then. > > > I don't want to flog a dead horse, but... > Do we document the correct approach anywhere easily visible? When moving code between packages when that code is needed, the correct way is to... > > 1. Commit the package to which the code is moving, /not/ committing the package from which it has moved yet > 2. Commit an update configuration > 3. Commit the package from which the code has moved > > Hence on update the package to which the code is moving is loaded first, leaving the other package dirty but the code still present, and then the package from which the code has moved is loaded, > leaving the code in place at all times. > > This is simple and perhaps non-obvious. We need to have this, plus similar verbiage about delegate system changes, documented and visible to our users. > > > Best, > Marcel > > Am 05.02.2018 16:20:04 schrieb Levente Uzonyi <[hidden email]>: > > Hi All, > > I went ahead and removed update-nice.422 from the Trunk. The only > difference between update-nice.422 and update-bf.422 was that the former > included Morphic-mt.1350 while the latter referenced Morphic-dtl.1374. > This was a significant difference, because after loading Morphic-mt.1350, > Object >> #currentHand and friends were temporarily removed from the > image, which somehow resulted in the removal of the UI process without an > emergency evaluator ever appearing. I think that's something to be > investigated. > > After this change, I could successfully update the latest Trunk image > available on files.squeak.org. > > I could do this removal only because the members of the Squeak Oversight > Board group on source.squeak.org have not been updated since 2016. For the > very same reason, Nicolas couldn't have done this change. > > Levente > > On Sun, 4 Feb 2018, Bert Freudenberg wrote: > > > Log in to source.squeak.org, trunk repo, "edit configs", pick mine, delete. > > > > Before that you might download the config you're about to delete since there is no backup. > > > > - Bert - > > > > On 2 February 2018 at 21:39, Nicolas Cellier wrote: > > Just in case, I've aligned update-nice.422 with update-bf.422, hope it helps... > > > > 2018-02-02 21:34 GMT+01:00 Nicolas Cellier : > > So the necessary Morphic-dtl.1362.mcz was not in update-nice.422, apologies. > > update-nice.422 should be updated. > > > > Now I see a concurrent update-bf.422, how will it work? > > > > 2018-02-02 21:11 GMT+01:00 Nicolas Cellier : > > Hi, > > I think that it's related to The Trunk: Kernel-dtl.1123.mcz > > http://source.squeak.org/trunk/Kernel-dtl.1123.diff > > > > The missing methods are moved in The Trunk: Morphic-dtl.1362.mcz > > http://source.squeak.org/trunk/Morphic-dtl.1362.diff > > > > So a proper mcm configuration should solve it > > > > 2018-01-30 23:47 GMT+01:00 Fabio Niephaus : > > Clicking the update button another time seemed to have fixed the missing snapshot problem. I tried it a couple of times, but maybe got unlucky with the SqueakSource server. > > Anyway, now installing Kernel-nice.1127 freezes the image and I'm unable to interrupt it. SqueakDebug.log reveals the problem: > > > > --- The full stack --- > > TextMorph(Object)>>doesNotUnderstand: #currentHand > > [] in TextMorph>>createParagraph > > BlockClosure>>ensure: > > TextMorph>>createParagraph > > TextMorph>>paragraph > > TextMorph>>newContents: > > TextMorph>>contentsAsIs: > > MorphicProject>>composeDisplayTextIntoForm: > > DisplayText>>composeForm > > DisplayText>>form > > DisplayText>>displayOn:at:clippingBox:rule:fillColor: > > DisplayText(DisplayObject)>>displayOn:at: > > ByteString(String)>>displayOn:at:textColor: > > ByteString(String)>>displayOn:at: > > ByteString(String)>>displayAt: > > Project class>>tryEmergencyEvaluatorForRecovery: > > Project class>>handlePrimitiveError: > > MorphicProject(Object)>>primitiveError: > > MorphicProject(Project)>>handleFatalDrawingError: > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > > > Could someone please look into this? Thanks! > > > > Fabio > > > > image.png > > > > ---------- Forwarded message --------- > > From: Bert Freudenberg > > Date: Tue, Jan 30, 2018 at 11:30 PM > > Subject: Re: [squeak-dev] Another missing snapshot: SmallLand-ColorTheme-fbs.6 > > To: The general-purpose Squeak developers list > > > > > > Looks fine to me: > > > > http://source.squeak.org/trunk/SmallLand-ColorTheme-fbs.6.mcz > > > > - Bert - > > > > -- > > > > On 30 January 2018 at 22:03, Fabio Niephaus wrote: > > Hi all, > > > > Updating the trunk base image [1] throws another missing snapshot error. This time it's SmallLand-ColorTheme-fbs.6. Could someone please fix this as it's blocking trunk builds? > > > > Thanks, > > Fabio > > > > [1] http://files.squeak.org/base/Squeak-trunk/base.zip > > > > image.png > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
On Mon, Feb 5, 2018 at 6:43 PM Levente Uzonyi <[hidden email]> wrote: Does it happen on 64-bit? Is there a 64-bit base image? Yes, and yes (see [1] and [2]). Fabio
|
In reply to this post by fniephaus
This seems to be a classic. Too many methods have changed and the code
used by the updater is not being updated. I don't know exactly why the NetworkError is raised, but when you click retry, the next error is from HandMorph >> #handleEvent:, because that method is from 2015, and it's not compatible any more with the code already loaded by the update process. It's very likely that the NetworkError is raised for the same reason. It was discussed before that the updater should go update-by-update instead of trying to load everything at once because of this issue. We could probably fork a new process to load the next update map. If you abandon the error and restart the update process, then everything is fine. Levente On Mon, 5 Feb 2018, Fabio Niephaus wrote: > When trying to update the base image [1], I now get a network error after CommandLine-tpr.9. Clicking on "Retry" produces the result from below. AFAICT, CI fails in the same way [2]. > Fabio > > [1] http://files.squeak.org/base/Squeak-trunk/base.zip > [2] https://travis-ci.org/squeak-smalltalk/squeak-app/jobs/337607796#L3891 > > image.png -- > > On Mon, Feb 5, 2018 at 5:54 PM Nicolas Cellier <[hidden email]> wrote: > Hi Eliot, > the process you are proposing is not necessary. > Bert modified mcm process so that changes are grouped, avoiding most load-order problems we had previously. > > The problem here was that I was working on a different feature requiring a mcm (I think due to a postscript or something like that). > Normally, I update all the packages from the image version or the repository version when publishing an update map. > But this time I didn't, I think because I experienced time-out when trying to do so... > So I manually updated only the part I was working on (Kernel), thus the mistake... > > > 2018-02-05 17:17 GMT+01:00 Eliot Miranda <[hidden email]>: > Hi All, > > On Feb 5, 2018, at 7:25 AM, Marcel Taeumel <[hidden email]> wrote: > > Object >> #currentHand was moved from "Kernel" to "Morphic" back then. > > > I don't want to flog a dead horse, but... > Do we document the correct approach anywhere easily visible? When moving code between packages when that code is needed, the correct way is to... > > 1. Commit the package to which the code is moving, /not/ committing the package from which it has moved yet > 2. Commit an update configuration > 3. Commit the package from which the code has moved > > Hence on update the package to which the code is moving is loaded first, leaving the other package dirty but the code still present, and then the package from which the code has moved is loaded, > leaving the code in place at all times. > > This is simple and perhaps non-obvious. We need to have this, plus similar verbiage about delegate system changes, documented and visible to our users. > > > Best, > Marcel > > Am 05.02.2018 16:20:04 schrieb Levente Uzonyi <[hidden email]>: > > Hi All, > > I went ahead and removed update-nice.422 from the Trunk. The only > difference between update-nice.422 and update-bf.422 was that the former > included Morphic-mt.1350 while the latter referenced Morphic-dtl.1374. > This was a significant difference, because after loading Morphic-mt.1350, > Object >> #currentHand and friends were temporarily removed from the > image, which somehow resulted in the removal of the UI process without an > emergency evaluator ever appearing. I think that's something to be > investigated. > > After this change, I could successfully update the latest Trunk image > available on files.squeak.org. > > I could do this removal only because the members of the Squeak Oversight > Board group on source.squeak.org have not been updated since 2016. For the > very same reason, Nicolas couldn't have done this change. > > Levente > > On Sun, 4 Feb 2018, Bert Freudenberg wrote: > > > Log in to source.squeak.org, trunk repo, "edit configs", pick mine, delete. > > > > Before that you might download the config you're about to delete since there is no backup. > > > > - Bert - > > > > On 2 February 2018 at 21:39, Nicolas Cellier wrote: > > Just in case, I've aligned update-nice.422 with update-bf.422, hope it helps... > > > > 2018-02-02 21:34 GMT+01:00 Nicolas Cellier : > > So the necessary Morphic-dtl.1362.mcz was not in update-nice.422, apologies. > > update-nice.422 should be updated. > > > > Now I see a concurrent update-bf.422, how will it work? > > > > 2018-02-02 21:11 GMT+01:00 Nicolas Cellier : > > Hi, > > I think that it's related to The Trunk: Kernel-dtl.1123.mcz > > http://source.squeak.org/trunk/Kernel-dtl.1123.diff > > > > The missing methods are moved in The Trunk: Morphic-dtl.1362.mcz > > http://source.squeak.org/trunk/Morphic-dtl.1362.diff > > > > So a proper mcm configuration should solve it > > > > 2018-01-30 23:47 GMT+01:00 Fabio Niephaus : > > Clicking the update button another time seemed to have fixed the missing snapshot problem. I tried it a couple of times, but maybe got unlucky with the SqueakSource server. > > Anyway, now installing Kernel-nice.1127 freezes the image and I'm unable to interrupt it. SqueakDebug.log reveals the problem: > > > > --- The full stack --- > > TextMorph(Object)>>doesNotUnderstand: #currentHand > > [] in TextMorph>>createParagraph > > BlockClosure>>ensure: > > TextMorph>>createParagraph > > TextMorph>>paragraph > > TextMorph>>newContents: > > TextMorph>>contentsAsIs: > > MorphicProject>>composeDisplayTextIntoForm: > > DisplayText>>composeForm > > DisplayText>>form > > DisplayText>>displayOn:at:clippingBox:rule:fillColor: > > DisplayText(DisplayObject)>>displayOn:at: > > ByteString(String)>>displayOn:at:textColor: > > ByteString(String)>>displayOn:at: > > ByteString(String)>>displayAt: > > Project class>>tryEmergencyEvaluatorForRecovery: > > Project class>>handlePrimitiveError: > > MorphicProject(Object)>>primitiveError: > > MorphicProject(Project)>>handleFatalDrawingError: > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > > > Could someone please look into this? Thanks! > > > > Fabio > > > > image.png > > > > ---------- Forwarded message --------- > > From: Bert Freudenberg > > Date: Tue, Jan 30, 2018 at 11:30 PM > > Subject: Re: [squeak-dev] Another missing snapshot: SmallLand-ColorTheme-fbs.6 > > To: The general-purpose Squeak developers list > > > > > > Looks fine to me: > > > > http://source.squeak.org/trunk/SmallLand-ColorTheme-fbs.6.mcz > > > > - Bert - > > > > -- > > > > On 30 January 2018 at 22:03, Fabio Niephaus wrote: > > Hi all, > > > > Updating the trunk base image [1] throws another missing snapshot error. This time it's SmallLand-ColorTheme-fbs.6. Could someone please fix this as it's blocking trunk builds? > > > > Thanks, > > Fabio > > > > [1] http://files.squeak.org/base/Squeak-trunk/base.zip > > > > image.png > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
On Mon, Feb 5, 2018 at 7:12 PM Levente Uzonyi <[hidden email]> wrote: This seems to be a classic. Too many methods have changed and the code Sounds reasonable to me. Could someone please try this out?
Right, not sure if this is how we want to "fix" this on CI though. Fabio
|
In reply to this post by Levente Uzonyi
On Mon, Feb 5, 2018 at 9:42 AM, Levente Uzonyi <[hidden email]> wrote: On Mon, 5 Feb 2018, Eliot Miranda wrote: Is it robust in the presence of interrupts and restarts of the update process? What Bert did was to make the order of the packages in the update map irrelevant when you move a method from one package to another. _,,,^..^,,,_ best, Eliot |
It is so simple that it should be as robust as possible under the current state of things: The whole update map (all versions in it) is scanned for definitions that are about to be removed from one package and added to another. That is, only the category will change, the actual method and class stays the same. These reorganizations are executed in advance. That's it. The code is in MCReorganizationPreloader. Following this, each version in the update map is loaded, in order, without any knowledge of the reorganization step. If a definition is in fact moved from a package to another, the preloader will have moved it already and made both packages dirty. That means a full diff will be performed for these packages, and as usual, only the actual differences are performed to bring the working copy in the image up-to-date with the snapshot to be loaded. As a last step, the working copies that have been made dirty by the preloader will be checked again and marked clean if they do match the snapshot. This is not the issue. The issue was that a config map was changed accidentally so that the removal and addition now were in two separate config maps. That means the reorganization preloader could not see them. Boom. - Bert - |
Free forum by Nabble | Edit this page |