Regression

windows-32 / Tests-windows-32 / Windows32.Gofer.Tests.Tests.GoferApiTest.testRepositoryErrors (from Gofer-Tests)

Failing for the past 1 build (Since Unstable#108 )
Took 10 sec.

Stacktrace

Process>>pvtSignal:list:
[ self schedule.
"It is critical that the following has no suspension point so that
	the test and the wait primitive are atomic. In addition, if the delay
	is no longer being waited on while entering the way we know that it 
	is expired because the delay has already fired."
beingWaitedOn
	ifTrue: [ delaySemaphore wait ]
	ifFalse: [ expired := true ] ] in DelayWaitTimeout>>wait
BlockClosure>>ensure:
DelayWaitTimeout>>wait
Semaphore>>waitTimeoutMSecs:
Socket>>waitForDataFor:ifClosed:ifTimedOut:
Socket>>waitForDataFor:
ZdcSocketStream(ZdcAbstractSocketStream)>>socketWaitForData
[ self socketWaitForData ] in ZdcSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
BlockClosure>>on:do:
ZdcSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
ZdcSocketStream(ZdcAbstractSocketStream)>>next
ZnLineReader>>processNext
ZnLineReader>>nextLine
ZnStatusLine>>readFrom:
ZnStatusLine class>>readFrom:
ZnResponse>>readHeaderFrom:
ZnResponse(ZnMessage)>>readFrom:
ZnResponse class(ZnMessage class)>>readFrom:
[ :stream | ZnResponse readFrom: stream ] in [ [ :stream | ZnResponse readFrom: stream ] ] in ZnClient>>reader
[ self reader value: connection ] in [ response := (#(HEAD CONNECT) includes: request method)
	ifTrue: [ ZnResponse readHeaderFrom: connection ]
	ifFalse: [ self streaming
			ifTrue: [ ZnResponse readStreamingFrom: connection ]
			ifFalse:
				[ self withMaximumEntitySizeDo: [ self reader value: connection ] ] ] ] in [ self
	withDefaultCharacterEncoderDo: [ response := (#(HEAD CONNECT) includes: request method)
			ifTrue: [ ZnResponse readHeaderFrom: connection ]
			ifFalse: [ self streaming
					ifTrue: [ ZnResponse readStreamingFrom: connection ]
					ifFalse:
						[ self withMaximumEntitySizeDo: [ self reader value: connection ] ] ] ] ] in ZnClient>>readResponse
True>>ifTrue:ifFalse:
ZnClient>>withMaximumEntitySizeDo:
[ response := (#(HEAD CONNECT) includes: request method)
	ifTrue: [ ZnResponse readHeaderFrom: connection ]
	ifFalse: [ self streaming
			ifTrue: [ ZnResponse readStreamingFrom: connection ]
			ifFalse:
				[ self withMaximumEntitySizeDo: [ self reader value: connection ] ] ] ] in [ self
	withDefaultCharacterEncoderDo: [ response := (#(HEAD CONNECT) includes: request method)
			ifTrue: [ ZnResponse readHeaderFrom: connection ]
			ifFalse: [ self streaming
					ifTrue: [ ZnResponse readStreamingFrom: connection ]
					ifFalse:
						[ self withMaximumEntitySizeDo: [ self reader value: connection ] ] ] ] ] in ZnClient>>readResponse
True>>ifTrue:ifFalse:
ZnClient>>withDefaultCharacterEncoderDo:
[ self
	withDefaultCharacterEncoderDo: [ response := (#(HEAD CONNECT) includes: request method)
			ifTrue: [ ZnResponse readHeaderFrom: connection ]
			ifFalse: [ self streaming
					ifTrue: [ ZnResponse readStreamingFrom: connection ]
					ifFalse:
						[ self withMaximumEntitySizeDo: [ self reader value: connection ] ] ] ] ] in ZnClient>>readResponse
True>>ifTrue:ifFalse:
ZnClient>>withMaximumNumberOfDictionaryEntriesDo:
ZnClient>>readResponse
ZnClient>>executeRequestResponse
[ self executeRequestResponse ] in ZnClient>>getConnectionAndExecute
BlockClosure>>ensure:
ZnClient>>getConnectionAndExecute
ZnClient>>executeWithRedirectsRemaining:
[ self executeWithRedirectsRemaining: self maxNumberOfRedirects ] in ZnClient>>executeWithRetriesRemaining:
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
[ self executeWithRetriesRemaining: self numberOfRetries ] in [ [ self executeWithRetriesRemaining: self numberOfRetries ]
	on: Error
	do: self ifFailBlock ] in ZnClient>>executeWithTimeout
BlockClosure>>on:do:
[ [ self executeWithRetriesRemaining: self numberOfRetries ]
	on: Error
	do: self ifFailBlock ] in ZnClient>>executeWithTimeout
[ ^ block value ] in ZnClient>>withTimeoutDo:
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in ZnConnectionTimeout(DynamicVariable)>>value:during:
BlockClosure>>ensure:
ZnConnectionTimeout(DynamicVariable)>>value:during:
ZnConnectionTimeout class(DynamicVariable class)>>value:during:
ZnClient>>withTimeoutDo:
ZnClient>>executeWithTimeout
[ result := self executeWithTimeout ] in ZnClient>>execute
[ ^ block value ] in ZnClient>>withProgressDo:
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in ZnSignalProgress(DynamicVariable)>>value:during:
BlockClosure>>ensure:
ZnSignalProgress(DynamicVariable)>>value:during:
ZnSignalProgress class(DynamicVariable class)>>value:during:
ZnClient>>withProgressDo:
ZnClient>>execute
ZnClient>>get
[ client := self httpClient.
client
	ifFail: [ :exception | 
		(exception className beginsWith: 'Zn')
			ifTrue: [ MCRepositoryError
					signal: 'Could not access ' , self location , ': ' , exception printString ]
			ifFalse: [ exception pass ] ];
	url: self locationWithTrailingSlash;
	queryAt: 'C' put: 'M;O=D';
	"legacy that some servers maybe expect"
		get.
self assertNonBinaryResponse: client response ] in MCHttpRepository>>loadAllFileNames
[ workBlock value ] in [ :bar | 
[ workBlock value ]
	on: HTTPProgress
	do: [ :ex | 
		(ex total == nil or: [ ex amount == nil ])
			ifFalse: [ (nextUpdateTime < Time millisecondClockValue
					or: [ ex total = ex amount ])
					ifTrue: [ bar current: ex amount asFloat / ex total asFloat.
						nextUpdateTime := Time millisecondClockValue + 100 ] ].
		ex resume ] ] in MCHttpRepository>>displayProgress:during:
BlockClosure>>on:do:
[ :bar | 
[ workBlock value ]
	on: HTTPProgress
	do: [ :ex | 
		(ex total == nil or: [ ex amount == nil ])
			ifFalse: [ (nextUpdateTime < Time millisecondClockValue
					or: [ ex total = ex amount ])
					ifTrue: [ bar current: ex amount asFloat / ex total asFloat.
						nextUpdateTime := Time millisecondClockValue + 100 ] ].
		ex resume ] ] in MCHttpRepository>>displayProgress:during:
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
NonInteractiveUIManager(UIManager)>>displayProgress:from:to:during:
MCHttpRepository>>displayProgress:during:
MCHttpRepository>>loadAllFileNames
MCHttpRepository(MCFileBasedRepository)>>allFileNames
MCHttpRepository(MCFileBasedRepository)>>readableFileNames
MCHttpRepository(MCFileBasedRepository)>>allVersionNames
[ self allVersionNames ] in MCHttpRepository(MCFileBasedRepository)>>goferReferences
BlockClosure>>on:do:
MCHttpRepository(MCFileBasedRepository)>>goferReferences
[ aRepository goferReferences asSortedCollection asArray ] in Gofer>>basicReferencesIn:
BlockClosure>>on:do:
Gofer>>basicReferencesIn:
[ self basicReferencesIn: aRepository ] in Gofer>>allResolvedIn:
[ self at: key put: aBlock value ] in Dictionary>>at:ifAbsentPut:
Dictionary>>at:ifAbsent:
Dictionary>>at:ifAbsentPut:
Gofer>>allResolvedIn:
[ :repository | resolved addAll: (self allResolvedIn: repository) ] in Gofer>>allResolved
Array(SequenceableCollection)>>do:
Gofer>>allResolved
GoferPackageReference(GoferReference)>>resolveAllWith:
GoferPackageReference(GoferReference)>>resolveWith:
[ :each | each resolveWith: self ] in Gofer>>resolved
Array(SequenceableCollection)>>collect:
Gofer>>resolved
[ gofer resolved ] in GoferApiTest>>testRepositoryErrors
[ aBlock value.
false ] in GoferApiTest(TestAsserter)>>executeShould:inScopeOf:
BlockClosure>>on:do:
GoferApiTest(TestAsserter)>>executeShould:inScopeOf:
GoferApiTest(TestAsserter)>>should:raise:
GoferApiTest>>testRepositoryErrors
GoferApiTest(TestCase)>>performTest