<div dir="ltr">Hello friends of automated builds and testing,<div><br></div><div>My Squeak-trunk builds have been broken for about two weeks. Seems like the CodeLoader does not get what it needs when smalltalkCI shall be loaded after the image updated itself from trunk.</div><div></div><div><br></div><div>The script argument passed to the image is an absolute file path. It gets converted to a file URL in ProjectLauncher>>startUpAfterLogin, but then it contains the path twice: file:///home/jakob/.../home/jakob/...</div><div><br></div><div>Looks like the regression was introduced in System-dtl.1064 (13 May 2019): "Use Url rather than deprecated URI in ProjectLauncher>>startUpAfterLogin.This prevents command line startup scripts from failing due to a deprecation warning.Also fix a comment typo."</div><div>-                scriptName := (FileDirectory default uri                                               resolveRelativeURI: encodedPath) asString<br></div><div><a class="gmail_plusreply" id="gmail-plusReplyChip-0">+</a>               scriptName := (FileDirectory default asUrl newFromRelativeText: encodedPath) asString]]]  <br></div><div><br></div><div>#resolveRelativeURI: has a guard for absolute URI arguments, which newFromRelativeText: does not have.</div><div><br></div><div>Best regards,</div><div>Jakob</div><div><br></div><div><br></div><div>Error: No content to install<br>22 May 2019 9:16:19.528929 pm<br><br>VM: unix - Smalltalk<br>Image: Squeak5.3alpha [latest update: #18590]<br><br>SecurityManager state:<br>Restricted: false<br>FileAccess: true<br>SocketAccess: true<br>Working Dir /home/jakob/smalltalkCI/_builds/2019_05_22_21_14_48<br>Trusted Dir /home/jakob/smalltalkCI/_builds/2019_05_22_21_14_48/secure<br>Untrusted Dir /home/jakob/smalltalkCI/_builds/2019_05_22_21_14_48/My Squeak<br><br>CodeLoader(Object)>>error:<br>     Receiver: a CodeLoader<br>        Arguments and temporary variables: <br>           aString:        'No content to install'<br>       Receiver's instance variables: <br>           baseURL:        ''<br>            sourceFiles:    {a HTTPDownloadRequest}<br>               segments:       nil<br>           publicKey:      nil<br><br>CodeLoader>>installSourceFile:<br>   Receiver: a CodeLoader<br>        Arguments and temporary variables: <br>           aStream:        nil<br>           contents:       nil<br>           trusted:        nil<br>   Receiver's instance variables: <br>           baseURL:        ''<br>            sourceFiles:    {a HTTPDownloadRequest}<br>               segments:       nil<br>           publicKey:      nil<br><br>[] in CodeLoader>>installSourceFiles<br>     Receiver: a CodeLoader<br>        Arguments and temporary variables: <br>           req:    a HTTPDownloadRequest<br> Receiver's instance variables: <br>           baseURL:        ''<br>            sourceFiles:    {a HTTPDownloadRequest}<br>               segments:       nil<br>           publicKey:      nil<br><br>Array(SequenceableCollection)>>do:<br>       Receiver: {a HTTPDownloadRequest}<br>     Arguments and temporary variables: <br>           aBlock:         [closure] in CodeLoader>>installSourceFiles<br>             index:  1<br>             indexLimiT:     1<br>     Receiver's instance variables: <br>{a HTTPDownloadRequest}<br>CodeLoader>>installSourceFiles<br>    Receiver: a CodeLoader<br>        Arguments and temporary variables: <br><br> Receiver's instance variables: <br>           baseURL:        ''<br>            sourceFiles:    {a HTTPDownloadRequest}<br>               segments:       nil<br>           publicKey:      nil<br><br>ProjectLauncher>>startUpAfterLogin<br>       Receiver: a ProjectLauncher<br>   Arguments and temporary variables: <br>           scriptName:     'file:///home/jakob/smalltalkCI/_builds/2019_05_22_21_14_48/home/ja...etc...<br>              loader:         a CodeLoader<br>          isUrl:  false<br>         encodedPath:    '/home/jakob/smalltalkCI/_builds/2019_05_22_21_14_48/<a href="http://load.st">load.st</a>'<br>              pathTokens:     #('' 'home' 'jakob' 'smalltalkCI' '_builds' '2019_05_22_21_14_48' '...etc...<br>      Receiver's instance variables: <br>           parameters:     a Dictionary()<br>                showSplash:     true<br>          splashURL:      nil<br>           whichFlaps:     nil<br>           eToyAuthentificationServer:     nil<br><br>ProjectLauncher>>startUp<br> Receiver: a ProjectLauncher<br>   Arguments and temporary variables: <br><br> Receiver's instance variables: <br>           parameters:     a Dictionary()<br>                showSplash:     true<br>          splashURL:      nil<br>           whichFlaps:     nil<br>           eToyAuthentificationServer:     nil<br><br>[] in [] in AutoStart class>>startUp:<br>    Receiver: AutoStart<br>   Arguments and temporary variables: <br><<error during printing><br>        Receiver's instance variables: <br>           superclass:     Object<br>                methodDict:     a MethodDictionary()<br>          format:         65537<br>         instanceVariables:      #('parameters')<br>               organization:   ('as yet unclassified')<br><br>             subclasses:     nil<br>           name:   #AutoStart<br>            classPool:      a Dictionary(#Active->true #InstalledLaunchers->an OrderedCollection...etc...<br>           sharedPools:    nil<br>           environment:    Smalltalk<br>             category:       #'System-Support'<br><br>WorldState>>runStepMethodsIn:<br>      Receiver: a WorldState<br>        Arguments and temporary variables: <br>           aWorld:         a PasteUpMorph(2434915) [world]<br>               queue:  a SharedQueue(1)<br>              msg:    [closure] in [] in AutoStart class>>startUp:<br>            limit:  200<br>           stamp:  3736005379526<br> Receiver's instance variables: <br>           hands:  {a HandMorph(20417)}<br>          activeHand:     a HandMorph(20417)<br>            viewBox:        0@0 corner: 1024@768<br>          canvas:         a FormCanvas on: DisplayScreen(1024x768x32)<br>           damageRecorder:         a DamageRecorder<br>              stepList:       a Heap(StepMessage(#stepAt: -> a ClockMorph(3418298)'21:16:19')(a ClockMorph...etc...<br>              lastStepTime:   3736005379523<br>         lastStepMessage:        nil<br>           lastCycleTime:  3736005379526<br>         commandHistory:         a CommandHistory<br>              alarms:         a MorphicAlarmQueue<br>           lastAlarmTime:  3736005379523<br>         remoteServer:   nil<br>           multiCanvas:    nil<br>           interCycleDelay:        a Delay(20 msecs)<br><br>PasteUpMorph>>runStepMethods<br>       Receiver: a PasteUpMorph(2434915) [world]<br>     Arguments and temporary variables: <br><br> Receiver's instance variables: <br>           bounds:         0@0 corner: 1024@768<br>          owner:  nil<br>           submorphs:      {a DockingBarMorph(1961294) . a PluggableSystemWindow<Transcript>(25...etc...<br>           fullBounds:     0@0 corner: 1024@768<br>          color:  (Color r: 0.251 g: 0.259 b: 0.267)<br>            extension:      a MorphExtension (3136713) [eventHandler = an EventHandler]  [other:...etc...<br>                borderWidth:    0<br>             borderColor:    (Color r: 0.515 g: 0.181 b: 0.263)<br>            presenter:      an EtoysPresenter (536818)<br>            model:  a MorphicModel(360625)<br>                cursor:         1<br>             padding:        3<br>             backgroundMorph:        nil<br>           turtleTrailsForm:       nil<br>           turtlePen:      nil<br>           lastTurtlePositions:    nil<br>           isPartsBin:     nil<br>           indicateCursor:         nil<br>           wantsMouseOverHalos:    nil<br>           worldState:     a WorldState<br>          griddingOn:     nil<br><br>WorldState>>doOneCycleNowFor:<br>    Receiver: a WorldState<br>        Arguments and temporary variables: <br>           aWorld:         a PasteUpMorph(2434915) [world]<br>               capturingGesture:       #(false)<br>      Receiver's instance variables: <br>           hands:  {a HandMorph(20417)}<br>          activeHand:     a HandMorph(20417)<br>            viewBox:        0@0 corner: 1024@768<br>          canvas:         a FormCanvas on: DisplayScreen(1024x768x32)<br>           damageRecorder:         a DamageRecorder<br>              stepList:       a Heap(StepMessage(#stepAt: -> a ClockMorph(3418298)'21:16:19')(a ClockMorph...etc...<br>              lastStepTime:   3736005379523<br>         lastStepMessage:        nil<br>           lastCycleTime:  3736005379526<br>         commandHistory:         a CommandHistory<br>              alarms:         a MorphicAlarmQueue<br>           lastAlarmTime:  3736005379523<br>         remoteServer:   nil<br>           multiCanvas:    nil<br>           interCycleDelay:        a Delay(20 msecs)<br><br>WorldState>>doOneCycleFor:<br> Receiver: a WorldState<br>        Arguments and temporary variables: <br>           aWorld:         a PasteUpMorph(2434915) [world]<br>       Receiver's instance variables: <br>           hands:  {a HandMorph(20417)}<br>          activeHand:     a HandMorph(20417)<br>            viewBox:        0@0 corner: 1024@768<br>          canvas:         a FormCanvas on: DisplayScreen(1024x768x32)<br>           damageRecorder:         a DamageRecorder<br>              stepList:       a Heap(StepMessage(#stepAt: -> a ClockMorph(3418298)'21:16:19')(a ClockMorph...etc...<br>              lastStepTime:   3736005379523<br>         lastStepMessage:        nil<br>           lastCycleTime:  3736005379526<br>         commandHistory:         a CommandHistory<br>              alarms:         a MorphicAlarmQueue<br>           lastAlarmTime:  3736005379523<br>         remoteServer:   nil<br>           multiCanvas:    nil<br>           interCycleDelay:        a Delay(20 msecs)<br><br>PasteUpMorph>>doOneCycle<br>   Receiver: a PasteUpMorph(2434915) [world]<br>     Arguments and temporary variables: <br><br> Receiver's instance variables: <br>           bounds:         0@0 corner: 1024@768<br>          owner:  nil<br>           submorphs:      {a DockingBarMorph(1961294) . a PluggableSystemWindow<Transcript>(25...etc...<br>           fullBounds:     0@0 corner: 1024@768<br>          color:  (Color r: 0.251 g: 0.259 b: 0.267)<br>            extension:      a MorphExtension (3136713) [eventHandler = an EventHandler]  [other:...etc...<br>                borderWidth:    0<br>             borderColor:    (Color r: 0.515 g: 0.181 b: 0.263)<br>            presenter:      an EtoysPresenter (536818)<br>            model:  a MorphicModel(360625)<br>                cursor:         1<br>             padding:        3<br>             backgroundMorph:        nil<br>           turtleTrailsForm:       nil<br>           turtlePen:      nil<br>           lastTurtlePositions:    nil<br>           isPartsBin:     nil<br>           indicateCursor:         nil<br>           wantsMouseOverHalos:    nil<br>           worldState:     a WorldState<br>          griddingOn:     nil<br><br>[] in MorphicProject>>spawnNewProcess<br>    Receiver: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]<br>      Arguments and temporary variables: <br><<error during printing><br>        Receiver's instance variables: <br>           dependents:     nil<br>           world:  a PasteUpMorph(2434915) [world]<br>               uiManager:      a MorphicUIManager<br>            changeSet:      a ChangeSet named Unnamed1<br>            transcript:     a TranscriptStream<br>            parentProject:  a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]<br>                previousProject:        nil<br>           displayDepth:   32<br>            viewSize:       151@132<br>               thumbnail:      Form(151x132x32)<br>              nextProject:    nil<br>           projectParameters:      an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc...<br>              version:        nil<br>           urlList:        nil<br>           lastDirectory:  nil<br>           lastSavedAtSeconds:     nil<br>           projectPreferenceFlagDictionary:        an IdentityDictionary(#showSharedFlaps->true #showWorldMainDockingBar...etc...<br>             resourceManager:        a ResourceManager<br>             uiProcess:      a Process in nil<br><br>[] in BlockClosure>>newProcess<br>      Receiver: [closure] in MorphicProject>>spawnNewProcess<br>  Arguments and temporary variables: <br><<error during printing><br>        Receiver's instance variables: <br>           outerContext:   MorphicProject>>spawnNewProcess<br>         startpc:        101<br>           numArgs:        0<br><br><br>--- The full stack ---<br>CodeLoader(Object)>>error:<br>CodeLoader>>installSourceFile:<br>[] in CodeLoader>>installSourceFiles<br>Array(SequenceableCollection)>>do:<br>CodeLoader>>installSourceFiles<br>ProjectLauncher>>startUpAfterLogin<br>ProjectLauncher>>startUp<br>[] in [] in AutoStart class>>startUp:<br>WorldState>>runStepMethodsIn:<br>PasteUpMorph>>runStepMethods<br>WorldState>>doOneCycleNowFor:<br>WorldState>>doOneCycleFor:<br>PasteUpMorph>>doOneCycle<br>[] in MorphicProject>>spawnNewProcess<br>[] in BlockClosure>>newProcess<br></div></div>