Status: New
Owner: ---- Labels: Type-Bug New issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 Opening a monticello repository through the ui results in an error ZnUnknownHttpVersion. The i-net connection is slow and I see as result from the http request around 210 Kb. But changing (removing beOneShoot) helps and I can browse remote repositories again. The problem is in Pharo 1.4 too. =========================================================================== Changes: MCHttpRepository>>httpClient "Return a new, specifically configured instance of the HTTP client for internal use." ^ ZnClient new systemPolicy; "beOneShot;" username: self user password: self password; yourself =========================================================================== Stack trace: 19 September 2012 10:39:50.507 am VM: Win32 - IX86 - 6.1 - NBCoInterpreter NativeBoost-CogPlugin-IgorStasenko.9 uuid: 801decd2-0b42-fa49-bcea-d7564d516a1b Aug 3 2012 StackToRegisterMappingCogit VMMaker-oscog-IgorStasenko.162 uuid: e4554f9a-cc90-4826-a807-ac282b782fe4 Aug 3 2012 git://gitorious.org/cogvm/blessed.git Commit: aeb0705cde4b8fc57cb262dc051c5ee6dfa72a14 Date: 2012-07-26 16:38:48 +0200 By: Igor Stasenko <[hidden email]> Image: Pharo2.0a [Latest update: #20296] MCRepositoryError class(Object)>>error: Receiver: MCRepositoryError Arguments and temporary variables: <<error during printing> Receiver's instance variables: superclass: Error methodDict: a MethodDictionary() format: 142 layout: nil instanceVariables: nil organization: a ClassOrganizer subclasses: nil name: #MCRepositoryError classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Monticello-Repositories' traitComposition: nil localSelectors: nil [:exception | (exception className beginsWith: 'Zn') ifTrue: [MCRepositoryError error: 'Could not access ' , self location , ': ' , exception printString] ifFalse: [exception pass]] in [(client := self httpClient) ifFail: [:exception | (exception className beginsWith: 'Zn') ifTrue: [MCRepositoryError error: 'Could not access ' , self location , ': ' , exception printString] ifFalse: [exception pass]]; url: self locationWithTrailingSlash; queryAt: 'C' put: 'M;O=D'; get. self assertNonBinaryResponse: client response] in MCHttpRepository>>loadAllFileNames Receiver: a MCHttpRepository(http://ss3.gemstone.com/ss/Pharo20) Arguments and temporary variables: <<error during printing> Receiver's instance variables: creationTemplate: nil storeDiffs: nil cache: a Dictionary('Monticello-StephaneDucasse.708.mcz'->a MCVersion(Monticell...etc... allFileNames: nil cacheFileNames: false location: 'http://ss3.gemstone.com/ss/Pharo20' user: '' password: '' readerCache: a Dictionary('Monticello-StephaneDucasse.708.mcz'->a MCMczReader )...etc... BlockClosure>>cull: Receiver: [:exception | (exception className beginsWith: 'Zn') ifTrue: [MCRepositoryError error: '...etc... Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: [(client := self httpClient) ifFail: [:exception | (exception c...etc... startpc: 148 numArgs: 1 [(self tempAt: 2) cull: exception] in MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: [[self executeWithRetriesRemaining: self numberOfRetries] on: Error ...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRetriesRemaining: self numberOfRetries] BlockClosure>>ensure: Receiver: [(self tempAt: 2) cull: exception] Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: MethodContext(ContextPart)>>handleSignal: startpc: 98 numArgs: 0 MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: [[self executeWithRetriesRemaining: self numberOfRetries] on: Error ...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRetriesRemaining: self numberOfRetries] MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: ZnClient>>executeWithRetriesRemaining: pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRedirectsRemaining: self maxNumberOfRedirects] MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: ZnClient>>executeWithRetriesRemaining: pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRedirectsRemaining: self maxNumberOfRedirects] ZnUnknownHttpVersion(Exception)>>pass Receiver: ZnUnknownHttpVersion Arguments and temporary variables: <<error during printing> Receiver's instance variables: messageText: nil tag: nil signaler: a ZnStatusLine signalContext: ZnUnknownHttpVersion(Exception)>>signal handlerContext: BlockClosure>>on:do: outerContext: nil version: nil [:exception | retryCount > 0 ifTrue: [self handleRetry: exception; executeWithRetriesRemaining: retryCount - 1] ifFalse: [exception pass]] in ZnClient>>executeWithRetriesRemaining: Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport BlockClosure>>cull: Receiver: [:exception | retryCount > 0 ifTrue: [self handleRetry: exception; executeWithRetri...etc... Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: ZnClient>>executeWithRetriesRemaining: startpc: 70 numArgs: 1 [(self tempAt: 2) cull: exception] in MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: ZnClient>>executeWithRetriesRemaining: pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRedirectsRemaining: self maxNumberOfRedirects] BlockClosure>>ensure: Receiver: [(self tempAt: 2) cull: exception] Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: MethodContext(ContextPart)>>handleSignal: startpc: 98 numArgs: 0 MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: ZnClient>>executeWithRetriesRemaining: pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRedirectsRemaining: self maxNumberOfRedirects] ZnUnknownHttpVersion(Exception)>>signal Receiver: ZnUnknownHttpVersion Arguments and temporary variables: <<error during printing> Receiver's instance variables: messageText: nil tag: nil signaler: a ZnStatusLine signalContext: ZnUnknownHttpVersion(Exception)>>signal handlerContext: BlockClosure>>on:do: outerContext: nil version: nil [(ZnUnknownHttpVersion version: version) signal] in ZnStatusLine>>version: Receiver: a ZnStatusLine Arguments and temporary variables: <<error during printing> Receiver's instance variables: version: nil code: nil reason: nil Array(Collection)>>detect:ifNone: Receiver: #('HTTP/1.1' 'HTTP/1.0') Arguments and temporary variables: <<error during printing> Receiver's instance variables: #('HTTP/1.1' 'HTTP/1.0') ZnStatusLine>>version: Receiver: a ZnStatusLine Arguments and temporary variables: <<error during printing> Receiver's instance variables: version: nil code: nil reason: nil ZnStatusLine>>readFrom: Receiver: a ZnStatusLine Arguments and temporary variables: <<error during printing> Receiver's instance variables: version: nil code: nil reason: nil ZnStatusLine class>>readFrom: Receiver: ZnStatusLine Arguments and temporary variables: <<error during printing> Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#code->(ZnStatusLine>>#code "a CompiledMethod(78...etc... format: 136 layout: nil instanceVariables: #('version' 'code' 'reason') organization: a ClassOrganizer subclasses: nil name: #ZnStatusLine classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Zinc-HTTP-Core' traitComposition: {} localSelectors: nil ZnResponse>>readHeaderFrom: Receiver: <<error during printing>> Arguments and temporary variables: <<error during printing> Receiver's instance variables: headers: nil entity: nil statusLine: nil ZnResponse(ZnMessage)>>readFrom: Receiver: <<error during printing>> Arguments and temporary variables: <<error during printing> Receiver's instance variables: headers: nil entity: nil statusLine: nil ZnResponse class(ZnMessage class)>>readFrom: Receiver: ZnResponse Arguments and temporary variables: <<error during printing> Receiver's instance variables: superclass: ZnMessage methodDict: a MethodDictionary(#addCookie:->(ZnResponse>>#addCookie: "a Compile...etc... format: 136 layout: nil instanceVariables: #('statusLine') organization: a ClassOrganizer subclasses: nil name: #ZnResponse classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Zinc-HTTP-Core' traitComposition: {} localSelectors: nil ZnClient>>executeRequestResponse Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport [self executeRequestResponse] in ZnClient>>getConnectionAndExecute Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport BlockClosure>>ensure: Receiver: [self executeRequestResponse] Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: ZnClient>>getConnectionAndExecute startpc: 133 numArgs: 0 ZnClient>>getConnectionAndExecute Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport ZnClient>>executeWithRedirectsRemaining: Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport [self executeWithRedirectsRemaining: self maxNumberOfRedirects] in ZnClient>>executeWithRetriesRemaining: Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport BlockClosure>>on:do: Receiver: [self executeWithRedirectsRemaining: self maxNumberOfRedirects] Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: ZnClient>>executeWithRetriesRemaining: startpc: 57 numArgs: 0 ZnClient>>executeWithRetriesRemaining: Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport [:exception | retryCount > 0 ifTrue: [self handleRetry: exception; executeWithRetriesRemaining: retryCount - 1] ifFalse: [exception pass]] in ZnClient>>executeWithRetriesRemaining: Receiver: a ZnClient Arguments and temporary variables: <<error during printing> Receiver's instance variables: request: a ZnRequest(GET /ss/Pharo20/?C=M%3BO%3DD) response: nil connection: SocketStream[inbuf:4kb/outbuf:4kb] lastUsed: nil state: #closed options: a Dictionary(#enforceAcceptContentType->true #enforceHttpSuccess->true...etc... session: nil log: a ZnLogSupport BlockClosure>>cull: Receiver: [:exception | retryCount > 0 ifTrue: [self handleRetry: exception; executeWithRetri...etc... Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: ZnClient>>executeWithRetriesRemaining: startpc: 70 numArgs: 1 [(self tempAt: 2) cull: exception] in MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: ZnClient>>executeWithRetriesRemaining: pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRedirectsRemaining: self maxNumberOfRedirects] BlockClosure>>ensure: Receiver: [(self tempAt: 2) cull: exception] Arguments and temporary variables: <<error during printing> Receiver's instance variables: outerContext: MethodContext(ContextPart)>>handleSignal: startpc: 98 numArgs: 0 MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: ZnClient>>executeWithRetriesRemaining: pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(784596992)") closureOrNil: nil receiver: [self executeWithRedirectsRemaining: self maxNumberOfRedirects] ZnUnknownHttpVersion(Exception)>>signal Receiver: ZnUnknownHttpVersion Arguments and temporary variables: <<error during printing> Receiver's instance variables: messageText: nil tag: nil signaler: a ZnStatusLine signalContext: ZnUnknownHttpVersion(Exception)>>signal handlerContext: BlockClosure>>on:do: outerContext: nil version: nil [(ZnUnknownHttpVersion version: version) signal] in ZnStatusLine>>version: Receiver: a ZnStatusLine Arguments and temporary variables: <<error during printing> Receiver's instance variables: version: nil code: nil reason: nil Array(Collection)>>detect:ifNone: Receiver: #('HTTP/1.1' 'HTTP/1.0') Arguments and temporary variables: <<error during printing> Receiver's instance variables: #('HTTP/1.1' 'HTTP/1.0') _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Comment #1 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 Hmm, #beOneShot should normally not have an influence on proxy usage. Do all Zn tests pass with proxy settings activated ? What kind of proxy are you using ? I don't understand what you mean by "The i-net connection is slow and I see as result from the http request around 210 Kb.". Debugging somebody else's proxy is very hard to impossible. Hopefully there are other Windows users with the same setup. _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Comment #2 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 I'm using a proxy cascade cntlm - coorporate firewall - i-net. In the same image the line ZnClient new get: 'http://www.ix.de' works as expected. I brought fiddler into the chain to debug the http protocoll. I see the response from my proxy arriving 2-3 seconds later. Now I think there is a time-out and the response does not arrive in time. Retrying (removing #beOneShoot) then finds the now filled cache. If the buffer is empty ZnStatusLine now parses an empty buffer and signals the exception ZnUnknownHttpVersion. _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Comment #3 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 I think it is not a proxy problem - ZnClient new get: 'http://www.ix.de' works as expected. _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Updates:
Labels: Milestone-2.0 Comment #4 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 (No comment was entered for this change.) _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Comment #5 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 Here are the test results for ZnClientTest: 27 run, 21 passes, 0 expected failures, 3 failures, 3 errors, 0 unexpected passes Failures: ZnClientTests>>#testIfFailNotFound ZnClientTests>>#testIfFailWrongType ZnClientTests>>#testIfFailNonExistingHost Errors: ZnClientTests>>#testGetSmallHTMLOneShot ZnClientTests>>#testLogging ZnClientTests>>#testRedirect _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Comment #6 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 I'm using the cntlm-proxy on my host to ntlm authenticate processes against a corporate firewall. Having configured the proxy in my image and doing ZnClient new get: 'http://ss3.gemstone.com/ss/Pharo20' works just as expected. _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Comment #7 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 OK, I found the page about cntlm. If I have more time, I will try to install it on a Linux machine and see what happens, but I won't be able to test Windows NTLM as I don't have access to that. _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Updates:
Status: Accepted Labels: -Milestone-2.0 Comment #8 on issue 6698 by [hidden email]: Accessing MC-Repository through a http proxy fails http://code.google.com/p/pharo/issues/detail?id=6698 As this is a very special kind of proxy, I think it is not a show stopper for 2.0 _______________________________________________ Pharo-bugtracker mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker |
Free forum by Nabble | Edit this page |