On 10 February 2011 18:10, Dale Henrichs <[email protected]> wrote: > Marcus, > > Since there are truncated lines in the mail message, it isn't possible to > tell precisely what broke, but I did look at the console output: > > https://pharo-ic.lille.inria.fr/hudson/job/Pharo%201.3/16/console > > and according to the stack on the console it looks like the top of the stack > was: > > UndefinedObject(Object)>>doesNotUnderstand: #readStream > MCScanner class>>scanTokens: > MCMczReader>>parseMember: > > and this is the typical signature of a failed mcz download ... where the > file was created with little or no content ... > > If I recall correctly, there may be a corrupted file in the package-cache, > so the package-cache needs to be cleared before retrying ... >
i wonder why MC don't throws something like 'DownloadFailedError' , and returning nil instead. > Dale > > > On 02/10/2011 08:17 AM, Marcus Denker wrote: >> >> We should really fix the 1.3 build.... >> >> Begin forwarded message: >> >>> From: [email protected] >>> Date: February 10, 2011 7:06:37 AM PST >>> To: [email protected], [email protected] >>> Subject: Build failed in Hudson: Pharo 1.3 #16 >>> >>> See<https://pharo-ic.lille.inria.fr/hudson/job/Pharo%201.3/16/> >>> >>> ------------------------------------------ >>> [...truncated 775 lines...] >>> MetacelloMCProjectSpec>>load >>> MetacelloProjectReferenceSpec>>loadUsing:gofer: >>> [:pkg | pkg loadUsing: self gofer: gofer] in >>> MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories: >>> OrderedCollection>>do: >>> >>> MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories: >>> [super linearLoadPackageSpecs: packageSpecs repositories: repositories] >>> in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpecs:repositories: >>> BlockClosure>>ensure: >>> MetacelloLoaderPolicy>>pushLoadDirective:during: >>> MetacelloLoaderPolicy>>pushLinearLoadDirectivesDuring:for: >>> MetacelloFetchingMCSpecLoader>>linearLoadPackageSpecs:repositories: >>> MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>load >>> MetacelloMCVersionSpecLoader>>load >>> MetacelloMCVersion>>executeLoadFromArray: >>> [self versionSpec loader: newLoader. >>> ^ self executeLoadFromArray: anArray] in [[self versionSpec loader: >>> newLoader. >>> ^ self executeLoadFromArray: anArray] >>> ensure: [self versionSpec loader: originalLoader]] in >>> MetacelloMCVersion>>fetchRequiredFromArray: >>> BlockClosure>>ensure: >>> [[self versionSpec loader: newLoader. >>> ^ self executeLoadFromArray: anArray] >>> ensure: [self versionSpec loader: originalLoader]] in >>> MetacelloMCVersion>>fetchRequiredFromArray: >>> MetacelloPharoPlatform(MetacelloPlatform)>>do:displaying: >>> MetacelloPharoPlatform>>do:displaying: >>> MetacelloMCVersion>>fetchRequiredFromArray: >>> [| fetchLoader | >>> fetchLoader := self fetchRequiredFromArray: anArray. >>> MetacelloPlatform current >>> do: [fetchLoader doLoad] >>> displaying: 'Loading ' , displayString. >>> Transcript cr; show: '...finished ' , self versionNumber >>> printString. >>> ^ fetchLoader] in MetacelloMCVersion>>doLoadRequiredFromArray: >>> BlockClosure>>ensure: >>> MetacelloMCVersion>>doLoadRequiredFromArray: >>> MetacelloMCVersion>>load >>> UndefinedObject>>DoIt >>> Compiler>>evaluate:in:to:notifying:ifFail:logged: >>> Compiler class>>evaluate:for:notifying:logged: >>> Compiler class>>evaluate:for:logged: >>> Compiler class>>evaluate:logged: >>> [| chunk | val := (self peekFor: $!) >>> ifTrue: [(Compiler evaluate: self nextChunk >>> logged: false) >>> scanFrom: self] >>> ifFalse: [chunk := self nextChunk. >>> self checkForPreamble: chunk. >>> Compiler evaluate: chunk logged: >>> true]] in [:bar | >>> [self atEnd] >>> whileFalse: [bar value: self position. >>> self skipSeparators. >>> [| chunk | val := (self peekFor: $!) >>> ifTrue: [(Compiler >>> evaluate: self nextChunk logged: false) >>> scanFrom: >>> self] >>> ifFalse: [chunk := self >>> nextChunk. >>> self >>> checkForPreamble: chunk. >>> Compiler evaluate: >>> chunk logged: true]] >>> on: InMidstOfFileinNotification >>> do: [:ex | ex resume: true]. >>> self skipStyleChunk]. >>> self close] in >>> RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: >>> BlockClosure>>on:do: >>> [:bar | >>> [self atEnd] >>> whileFalse: [bar value: self position. >>> self skipSeparators. >>> [| chunk | val := (self peekFor: $!) >>> ifTrue: [(Compiler >>> evaluate: self nextChunk logged: false) >>> scanFrom: >>> self] >>> ifFalse: [chunk := self >>> nextChunk. >>> self >>> checkForPreamble: chunk. >>> Compiler evaluate: >>> chunk logged: true]] >>> on: InMidstOfFileinNotification >>> do: [:ex | ex resume: true]. >>> self skipStyleChunk]. >>> self close] in >>> RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: >>> NonInteractiveUIManager>>progressInitiationExceptionDefaultAction: >>> ProgressInitiationException>>defaultAction >>> UndefinedObject>>handleSignal: >>> ProgressInitiationException(Exception)>>signal >>> ProgressInitiationException>>display:at:from:to:during: >>> ProgressInitiationException class>>display:at:from:to:during: >>> ByteString(String)>>displayProgressAt:from:to:during: >>> RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: >>> RWBinaryOrTextStream(PositionableStream)>>fileIn >>> CodeLoader>>installSourceFile: >>> [:req | self installSourceFile: req contentStream] in >>> CodeLoader>>installSourceFiles >>> Array(SequenceableCollection)>>do: >>> CodeLoader>>installSourceFiles >>> ProjectLauncher>>startUpAfterLogin >>> ProjectLauncher>>startUp >>> [launcher startUp] in [:launcher | ws >>> addDeferredUIMessage: [launcher startUp]] in AutoStart >>> class>>startUp: >>> WorldState>>runStepMethodsIn: >>> PasteUpMorph>>runStepMethods >>> WorldState>>doOneCycleNowFor: >>> WorldState>>doOneCycleFor: >>> PasteUpMorph>>doOneCycle >>> [[World doOneCycle. >>> Processor yield. >>> false] whileFalse. >>> nil] in Project class>>spawnNewProcess >>> [self value. >>> Processor terminateActive] in BlockClosure>>newProcess >>> ------------------------------------------------------------ >>> >>> Processes and their stacks: >>> Process: a Process in nil >>> stack: >>> >>> Array(SequenceableCollection)>>do: >>> [:logger | >>> logger nextPutAll: 'Processes and their stacks: '; >>> cr. >>> Process allInstances >>> do: [:each | >>> | ctx | >>> logger nextPutAll: 'Process: '; >>> print: each; >>> cr; >>> nextPutAll: ' stack:'; >>> cr; >>> cr. >>> ctx := each isActiveProcess >>> ifTrue: [thisContext >>> sender] >>> ifFalse: [each >>> suspendedContext]. >>> ctx >>> ifNotNil: [(ctx stackOfSize: 20) >>> do: [:s | logger print: s; >>> cr]]. >>> logger nextPutAll: >>> '------------------------------'; >>> cr; >>> cr]] in [Smalltalk logError: aString >>> inContext: aContext. >>> Smalltalk >>> logDuring: [:logger | >>> logger nextPutAll: 'Processes and their stacks: '; >>> cr. >>> Process allInstances >>> do: [:each | >>> | ctx | >>> logger nextPutAll: 'Process: '; >>> print: each; >>> cr; >>> nextPutAll: ' stack:'; >>> cr; >>> cr. >>> ctx := each isActiveProcess >>> ifTrue: >>> [thisContext sender] >>> ifFalse: >>> [each suspendedContext]. >>> ctx >>> ifNotNil: [(ctx >>> stackOfSize: 20) >>> do: [:s | >>> logger print: s; >>> >>> cr]]. >>> logger nextPutAll: >>> '------------------------------'; >>> cr; >>> cr]]] in >>> NonInteractiveUIManager>>quitFrom:withMessage: >>> [logStream := self openLog. >>> aMonadicBlock value: logStream] in SmalltalkImage>>logDuring: >>> BlockClosure>>ensure: >>> SmalltalkImage>>logDuring: >>> [Smalltalk logError: aString inContext: aContext. >>> Smalltalk >>> logDuring: [:logger | >>> logger nextPutAll: 'Processes and their stacks: '; >>> cr. >>> Process allInstances >>> do: [:each | >>> | ctx | >>> logger nextPutAll: 'Process: '; >>> print: each; >>> cr; >>> nextPutAll: ' stack:'; >>> cr; >>> cr. >>> ctx := each isActiveProcess >>> ifTrue: >>> [thisContext sender] >>> ifFalse: >>> [each suspendedContext]. >>> ctx >>> ifNotNil: [(ctx >>> stackOfSize: 20) >>> do: [:s | >>> logger print: s; >>> >>> cr]]. >>> logger nextPutAll: >>> '------------------------------'; >>> cr; >>> cr]]] in >>> NonInteractiveUIManager>>quitFrom:withMessage: >>> BlockClosure>>ensure: >>> NonInteractiveUIManager>>quitFrom:withMessage: >>> NonInteractiveUIManager>>unhandledErrorDefaultAction: >>> UnhandledError>>defaultAction >>> UndefinedObject>>handleSignal: >>> MethodContext(ContextPart)>>handleSignal: >>> MethodContext(ContextPart)>>handleSignal: >>> MethodContext(ContextPart)>>handleSignal: >>> UnhandledError(Exception)>>signal >>> UnhandledError class>>signalForException: >>> MessageNotUnderstood(Error)>>defaultAction >>> MessageNotUnderstood>>defaultAction >>> UndefinedObject>>handleSignal: >>> MethodContext(ContextPart)>>handleSignal: >>> ------------------------------ >>> >>> Process: a Process in Delay class>>handleTimerEvent >>> stack: >>> >>> Delay class>>handleTimerEvent >>> Delay class>>runTimerEventLoop >>> [self runTimerEventLoop] in Delay class>>startTimerEventLoop >>> [self value. >>> Processor terminateActive] in BlockClosure>>newProcess >>> ------------------------------ >>> >>> Process: a Process in SmalltalkImage>>lowSpaceWatcher >>> stack: >>> >>> SmalltalkImage>>lowSpaceWatcher >>> [self lowSpaceWatcher] in SmalltalkImage>>installLowSpaceWatcher >>> [self value. >>> Processor terminateActive] in BlockClosure>>newProcess >>> ------------------------------ >>> >>> Process: a Process in ProcessorScheduler class>>idleProcess >>> stack: >>> >>> ProcessorScheduler class>>idleProcess >>> [self idleProcess] in ProcessorScheduler class>>startUp >>> [self value. >>> Processor terminateActive] in BlockClosure>>newProcess >>> ------------------------------ >>> >>> Process: a Process in [delaySemaphore wait] in Delay>>wait >>> stack: >>> >>> [delaySemaphore wait] in Delay>>wait >>> BlockClosure>>ifCurtailed: >>> Delay>>wait >>> InputEventPollingFetcher>>waitForInput >>> InputEventPollingFetcher(InputEventFetcher)>>eventLoop >>> [self eventLoop] in >>> InputEventPollingFetcher(InputEventFetcher)>>installEventLoop >>> [self value. >>> Processor terminateActive] in BlockClosure>>newProcess >>> ------------------------------ >>> >>> Process: a Process in WeakArray class>>finalizationProcess >>> stack: >>> >>> WeakArray class>>finalizationProcess >>> [self finalizationProcess] in WeakArray >>> class>>restartFinalizationProcess >>> [self value. >>> Processor terminateActive] in BlockClosure>>newProcess >>> ------------------------------ >>> >>> Archiving artifacts >>> Enregistrement des résultats des tests >>> >> >> -- >> Marcus Denker -- http://www.marcusdenker.de >> INRIA Lille -- Nord Europe. Team RMoD. >> >> > > > -- Best regards, Igor Stasenko AKA sig.
