[squeak-dev] Squeaksource upload/respnse problem? (was Re: The Inbox: EToys-tpr.321.mcz)
David T. Lewis
lewis at mail.msen.com
Thu Mar 8 00:50:33 UTC 2018
Just guessing, but I do have shell access to that server and it looks to
me like the source.squeak.org image is serializing the in-image repository
out to disk (data.obj) when changes happen. If that happens in line with
the response to the client, then timeouts would be the likely result.
I am not actively following up on this, but if someone wants to take a
look at the image, this would be the first thing I would check.
The old squeaksource.com image relies on an hourly image save to back
itself (and the respository) up to disk. It's not very fancy but it works.
If I were to do it instead by serializing the repository to a data.obj
file, I would probably do it with a #forkSqueak to keep the primary image
responsive.
@Tobias: What does SS2/SS3 do?
Dave
On Wed, Mar 07, 2018 at 02:11:38PM +0100, Levente Uzonyi wrote:
> No, it's not. Changes happen almost instantly. You can verify this by
> using another session (another tab in the browser or another image) that
> your upload/change is already on the server while your original session is
> still waiting for a response until timeout.
> Also, every single upload will be timed out.
>
> Levente
>
> On Wed, 7 Mar 2018, Tobias Pape wrote:
>
> >Maybe the server is just thinking very deeply ??\_(???)_/??
> >
> >-t
> >
> >
> >>On 06.03.2018, at 23:10, Levente Uzonyi <leves at caesar.elte.hu> wrote:
> >>
> >>It's been like that lately.
> >>I'm fairly sure it's a bug in the image serving source.squeak.org,
> >>because it also happens when you use the web interface to move a package
> >>version, and wireshark only shows that the server does not respond.
> >>I also checked if there are any suspicious firewall rules in place on the
> >>server, but there were none.
> >>And it never happens on any other squeaksource repositories.
> >>
> >>Levente
> >>
> >>On Tue, 6 Mar 2018, tim Rowledge wrote:
> >>
> >>>
> >>>
> >>>>On 06-03-2018, at 12:49 PM, commits at source.squeak.org wrote:
> >>>>tim Rowledge uploaded a new version of EToys to project The Inbox:
> >>>>http://source.squeak.org/inbox/EToys-tpr.321.mcz
> >>>
> >>>Hmm, looks like squeaksource is having some sort of problem since it
> >>>tells me that my commit failed. So far as I can tell from the debugger
> >>>it appears to be more a case of the response not arriving to confirm an
> >>>upload - it times out but in #waitForData. 'From: tim at rowledge.org
> >>>To: squeak-dev at lists.squeakfoundation.org
> >>>Subject: [BUG]SocketStream>>signalTimeout
> >>>
> >>>here insert explanation of what you were doing, suspect changes you''ve
> >>>made and so forth.
> >>>
> >>>6 March 2018 1:20:57.691799 pm
> >>>
> >>>VM: unix - Smalltalk
> >>>Image: Squeak6.0alpha [latest update: #17785]
> >>>
> >>>SecurityManager state:
> >>>Restricted: false
> >>>FileAccess: true
> >>>SocketAccess: true
> >>>Working Dir /home/pi/Squeak
> >>>Trusted Dir /home/pi/Squeak/secure
> >>>Untrusted Dir /home/pi/Squeak/My Squeak
> >>>
> >>>SocketStream>>signalTimeout
> >>> Receiver: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> Arguments and temporary variables:
> >>> Receiver''s instance variables:
> >>> recentlyRead: 0
> >>> socket: a Socket[connected]
> >>> inBuffer: ''...etc...
> >>> outBuffer: ''P
> >>> ???t????$5????>mK????I????1???????R@????A???sb???iE???????=F
???-Y4???
??????? ??????S????y????d?????????????9
%???????????????????????...etc...
> >>> inNextToWrite: 1
> >>> outNextToWrite: 1
> >>> lastRead: 0
> >>> timeout: 45
> >>> autoFlush: true
> >>> bufferSize: 4096
> >>> binary: false
> >>> shouldSignal: true
> >>>
> >>>[] in SocketStream>>waitForData
> >>> Receiver: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> Arguments and temporary variables:
> >>> Receiver''s instance variables:
> >>> recentlyRead: 0
> >>> socket: a Socket[connected]
> >>> inBuffer: ''...etc...
> >>> outBuffer: ''P
> >>> ???t????$5????>mK????I????1???????R@????A???sb???iE???????=F
???-Y4???
??????? ??????S????y????d?????????????9
%???????????????????????...etc...
> >>> inNextToWrite: 1
> >>> outNextToWrite: 1
> >>> lastRead: 0
> >>> timeout: 45
> >>> autoFlush: true
> >>> bufferSize: 4096
> >>> binary: false
> >>> shouldSignal: true
> >>>
> >>>Socket>>waitForDataFor:ifClosed:ifTimedOut:
> >>> Receiver: a Socket[connected]
> >>> Arguments and temporary variables:
> >>> timeout: 45
> >>> closedBlock: [closure] in SocketStream>>waitForData
> >>> timedOutBlock: [closure] in SocketStream>>waitForData
> >>> deadline: 3697822386066
> >>> timeLeft: -1
> >>> Receiver''s instance variables:
> >>> semaphore: a Semaphore()
> >>> socketHandle: #[151 254 66 131 0 0 0 0 176 33 170 0]
> >>> readSemaphore: a Semaphore()
> >>> writeSemaphore: a Semaphore()
> >>>
> >>>SocketStream>>waitForData
> >>> Receiver: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> Arguments and temporary variables:
> >>> Receiver''s instance variables:
> >>> recentlyRead: 0
> >>> socket: a Socket[connected]
> >>> inBuffer: ''...etc...
> >>> outBuffer: ''P
> >>> ???t????$5????>mK????I????1???????R@????A???sb???iE???????=F
???-Y4???
??????? ??????S????y????d?????????????9
%???????????????????????...etc...
> >>> inNextToWrite: 1
> >>> outNextToWrite: 1
> >>> lastRead: 0
> >>> timeout: 45
> >>> autoFlush: true
> >>> bufferSize: 4096
> >>> binary: false
> >>> shouldSignal: true
> >>>
> >>>SocketStream>>receiveData
> >>> Receiver: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> Arguments and temporary variables:
> >>> Receiver''s instance variables:
> >>> recentlyRead: 0
> >>> socket: a Socket[connected]
> >>> inBuffer: ''...etc...
> >>> outBuffer: ''P
> >>> ???t????$5????>mK????I????1???????R@????A???sb???iE???????=F
???-Y4???
??????? ??????S????y????d?????????????9
%???????????????????????...etc...
> >>> inNextToWrite: 1
> >>> outNextToWrite: 1
> >>> lastRead: 0
> >>> timeout: 45
> >>> autoFlush: true
> >>> bufferSize: 4096
> >>> binary: false
> >>> shouldSignal: true
> >>>
> >>>SocketStream>>upToAll:limit:
> >>> Receiver: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> Arguments and temporary variables:
> >>> aStringOrByteArray: ''
> >>>
> >>>''
> >>> nBytes: 100000
> >>> index: 0
> >>> sz: 2
> >>> result: nil
> >>> searchedSoFar: 0
> >>> target: ''
> >>>
> >>>''
> >>> Receiver''s instance variables:
> >>> recentlyRead: 0
> >>> socket: a Socket[connected]
> >>> inBuffer: ''...etc...
> >>> outBuffer: ''P
> >>> ???t????$5????>mK????I????1???????R@????A???sb???iE???????=F
???-Y4???
??????? ??????S????y????d?????????????9
%???????????????????????...etc...
> >>> inNextToWrite: 1
> >>> outNextToWrite: 1
> >>> lastRead: 0
> >>> timeout: 45
> >>> autoFlush: true
> >>> bufferSize: 4096
> >>> binary: false
> >>> shouldSignal: true
> >>>
> >>>SocketStream>>upToAll:
> >>> Receiver: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> Arguments and temporary variables:
> >>> aStringOrByteArray: ''
> >>>
> >>>''
> >>> Receiver''s instance variables:
> >>> recentlyRead: 0
> >>> socket: a Socket[connected]
> >>> inBuffer: ''...etc...
> >>> outBuffer: ''P
> >>> ???t????$5????>mK????I????1???????R@????A???sb???iE???????=F
???-Y4???
??????? ??????S????y????d?????????????9
%???????????????????????...etc...
> >>> inNextToWrite: 1
> >>> outNextToWrite: 1
> >>> lastRead: 0
> >>> timeout: 45
> >>> autoFlush: true
> >>> bufferSize: 4096
> >>> binary: false
> >>> shouldSignal: true
> >>>
> >>>WebResponse>>readFrom:
> >>> Receiver: <<error during printing>>
> >>> Arguments and temporary variables:
> >>> aStream: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> tokens: nil
> >>> Receiver''s instance variables:
> >>> stream: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> protocol: nil
> >>> headers: nil
> >>> content: nil
> >>> request: WebRequest(PUT /trunk/Files-tpr.179.mcz
> >>> HTTP/1.1
> >>>
> >>>Content-Length: 1131...etc...
> >>> status: nil
> >>> code: nil
> >>> url: nil
> >>>
> >>>WebClient>>sendRequest:contentBlock:
> >>> Receiver: WebClient(Connected: http://source.squeak.org)
> >>> Arguments and temporary variables:
> >>> request: WebRequest(PUT /trunk/Files-tpr.179.mcz
> >>> HTTP/1.1
> >>>
> >>>Content-Length: 1131...etc...
> >>> contentBlock: [closure] in
> >>> WebClient>>sendRequest:content:size:
> >>> response: nil
> >>> repeatRedirect: false
> >>> repeatAuth: false
> >>> resp: nil
> >>> Receiver''s instance variables:
> >>> flags: 7
> >>> server: ''source.squeak.org''
> >>> scheme: ''http''
> >>> timeout: 45
> >>> stream: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> cookies: an OrderedCollection()
> >>> proxyServer: nil
> >>> lastScheme: ''http''
> >>> lastServer: ''source.squeak.org''
> >>> lastPort: 80
> >>> maxRedirect: 10
> >>> redirections: a Dictionary()
> >>> userAgent: ''WebClient/1.5 (WebClient-Core-ul.113;
> >>> Squeak6.0alpha-17785; unix)''
> >>> authParams: an
> >>> IdentityDictionary(#password->''parqparq''
> >>> #username->''tpr'' )
> >>> proxyParams: an IdentityDictionary()
> >>> accessLog: nil
> >>> debugLog: nil
> >>>
> >>>WebClient>>sendRequest:content:size:
> >>> Receiver: WebClient(Connected: http://source.squeak.org)
> >>> Arguments and temporary variables:
> >>> request: WebRequest(PUT /trunk/Files-tpr.179.mcz
> >>> HTTP/1.1
> >>>
> >>>Content-Length: 1131...etc...
> >>> contentStream: a ReadStream
> >>> streamSize: 113153
> >>> Receiver''s instance variables:
> >>> flags: 7
> >>> server: ''source.squeak.org''
> >>> scheme: ''http''
> >>> timeout: 45
> >>> stream: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> cookies: an OrderedCollection()
> >>> proxyServer: nil
> >>> lastScheme: ''http''
> >>> lastServer: ''source.squeak.org''
> >>> lastPort: 80
> >>> maxRedirect: 10
> >>> redirections: a Dictionary()
> >>> userAgent: ''WebClient/1.5 (WebClient-Core-ul.113;
> >>> Squeak6.0alpha-17785; unix)''
> >>> authParams: an
> >>> IdentityDictionary(#password->''parqparq''
> >>> #username->''tpr'' )
> >>> proxyParams: an IdentityDictionary()
> >>> accessLog: nil
> >>> debugLog: nil
> >>>
> >>>WebClient>>httpPut:content:type:do:
> >>> Receiver: WebClient(Connected: http://source.squeak.org)
> >>> Arguments and temporary variables:
> >>> urlString:
> >>> ''http://source.squeak.org/trunk/Files-tpr.179.mcz''
> >>> postData: #[80 75 3 4 20 0 0 0 8 0 137 102 102 76 235
> >>> 107 114 35 16 0 0 0 14 0 ...etc...
> >>> contentType: nil
> >>> aBlock: [closure] in [] in HTTPSocket
> >>> class>>httpPut:to:user:passwd:
> >>> request: WebRequest(PUT /trunk/Files-tpr.179.mcz
> >>> HTTP/1.1
> >>>
> >>>Content-Length: 1131...etc...
> >>> Receiver''s instance variables:
> >>> flags: 7
> >>> server: ''source.squeak.org''
> >>> scheme: ''http''
> >>> timeout: 45
> >>> stream: SocketStream[inbuf:4kb/outbuf:8kb]
> >>> cookies: an OrderedCollection()
> >>> proxyServer: nil
> >>> lastScheme: ''http''
> >>> lastServer: ''source.squeak.org''
> >>> lastPort: 80
> >>> maxRedirect: 10
> >>> redirections: a Dictionary()
> >>> userAgent: ''WebClient/1.5 (WebClient-Core-ul.113;
> >>> Squeak6.0alpha-17785; unix)''
> >>> authParams: an
> >>> IdentityDictionary(#password->''parqparq''
> >>> #username->''tpr'' )
> >>> proxyParams: an IdentityDictionary()
> >>> accessLog: nil
> >>> debugLog: nil
> >>>
> >>>[] in HTTPSocket class>>httpPut:to:user:passwd:
> >>> Receiver: HTTPSocket
> >>> Arguments and temporary variables: <<error during printing>
> >>> Receiver''s instance variables:
> >>> superclass: Object
> >>> methodDict: a MethodDictionary()
> >>> format: 0
> >>> instanceVariables: nil
> >>> organization: (''as yet unclassified'')
> >>>
> >>> subclasses: nil
> >>> name: #HTTPSocket
> >>> classPool: a Dictionary(#HTTPBlabEmail->''''
> >>> #HTTPPort->80 #HTTPProxyCredentials-...etc...
> >>> sharedPools: nil
> >>> environment: Smalltalk
> >>> category: #''Network-Protocols''
> >>>
> >>>BlockClosure>>ensure:
> >>> Receiver: [closure] in HTTPSocket class>>httpPut:to:user:passwd:
> >>> Arguments and temporary variables:
> >>> aBlock: [closure] in HTTPSocket
> >>> class>>httpPut:to:user:passwd:
> >>> complete: nil
> >>> returnValue: nil
> >>> Receiver''s instance variables:
> >>> outerContext: HTTPSocket class>>httpPut:to:user:passwd:
> >>> startpc: 165
> >>> numArgs: 0
> >>>
> >>>HTTPSocket class>>httpPut:to:user:passwd:
> >>> Receiver: HTTPSocket
> >>> Arguments and temporary variables:
> >>> contents: #[80 75 3 4 20 0 0 0 8 0 137 102 102 76 235
> >>> 107 114 35 16 0 0 0 14 0 ...etc...
> >>> url: ''http://source.squeak.org/trunk/Files-tpr.179.mcz''
> >>> user: ''tpr''
> >>> passwd: ''parqparq''
> >>> urlString:
> >>> ''http://source.squeak.org/trunk/Files-tpr.179.mcz''
> >>> xhdrs: ''''
> >>> client: WebClient(Connected:
> >>> http://source.squeak.org)
> >>> resp: #(nil)
> >>> Receiver''s instance variables:
> >>> superclass: Object
> >>> methodDict: a MethodDictionary()
> >>> format: 0
> >>> instanceVariables: nil
> >>> organization: (''as yet unclassified'')
> >>>
> >>> subclasses: nil
> >>> name: #HTTPSocket
> >>> classPool: a Dictionary(#HTTPBlabEmail->''''
> >>> #HTTPPort->80 #HTTPProxyCredentials-...etc...
> >>> sharedPools: nil
> >>> environment: Smalltalk
> >>> category: #''Network-Protocols''
> >>>
> >>>[] in MCHttpRepository>>writeStreamForFileNamed:replace:do:
> >>> Receiver: a MCHttpRepository(http://source.squeak.org/trunk)
> >>> Arguments and temporary variables: <<error during printing>
> >>> Receiver''s instance variables:
> >>> creationTemplate: ''MCHttpRepository
> >>> location: ''''http://source.squeak.org/trunk...etc...
> >>> storeDiffs: nil
> >>> cache: a Dictionary(''Compiler-eem.373.mcz''->a
> >>> MCVersion(Compiler-eem.373) ''EToy...etc...
> >>> allFileNamesCache: nil
> >>> allVersionNamesCache: nil
> >>> location: ''http://source.squeak.org/trunk''
> >>> user: ''tpr''
> >>> password: ''parqparq''
> >>> readerCache: a Dictionary(''Compiler-eem.373.mcz''->a
> >>> MCMczReader ''EToys-dtl.320....etc...
> >>> indexed: nil
> >>>
> >>>BlockClosure>>on:do:
> >>> Receiver: [closure] in
> >>> MCHttpRepository>>writeStreamForFileNamed:replace:do:
> >>> Arguments and temporary variables:
> >>> exceptionOrExceptionSet: HTTPProgress
> >>> handlerAction: [closure] in [] in
> >>> MCHttpRepository>>displayProgress:during:
> >>> handlerActive: true
> >>> Receiver''s instance variables:
> >>> outerContext:
> >>> MCHttpRepository>>writeStreamForFileNamed:replace:do:
> >>> startpc: 160
> >>> numArgs: 0
> >>>
> >>>[] in MCHttpRepository>>displayProgress:during:
> >>> Receiver: a MCHttpRepository(http://source.squeak.org/trunk)
> >>> Arguments and temporary variables: <<error during printing>
> >>> Receiver''s instance variables:
> >>> creationTemplate: ''MCHttpRepository
> >>> location: ''''http://source.squeak.org/trunk...etc...
> >>> storeDiffs: nil
> >>> cache: a Dictionary(''Compiler-eem.373.mcz''->a
> >>> MCVersion(Compiler-eem.373) ''EToy...etc...
> >>> allFileNamesCache: nil
> >>> allVersionNamesCache: nil
> >>> location: ''http://source.squeak.org/trunk''
> >>> user: ''tpr''
> >>> password: ''parqparq''
> >>> readerCache: a Dictionary(''Compiler-eem.373.mcz''->a
> >>> MCMczReader ''EToys-dtl.320....etc...
> >>> indexed: nil
> >>>
> >>>[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
> >>> Receiver: a MorphicUIManager
> >>> Arguments and temporary variables: <<error during printing>
> >>> Receiver''s instance variables:
> >>> builderClass: MorphicToolBuilder
> >>>
> >>>BlockClosure>>on:do:
> >>> Receiver: [closure] in [] in
> >>> MorphicUIManager>>displayProgress:at:from:to:during:
> >>> Arguments and temporary variables:
> >>> exceptionOrExceptionSet: ProgressNotification
> >>> handlerAction: [closure] in [] in
> >>> MorphicUIManager>>displayProgress:at:from:to:during:...etc...
> >>> handlerActive: true
> >>> Receiver''s instance variables:
> >>> outerContext: [] in
> >>> MorphicUIManager>>displayProgress:at:from:to:during:
> >>> startpc: 86
> >>> numArgs: 0
> >>>
> >>>
> >>>--- The full stack ---
> >>>SocketStream>>signalTimeout
> >>>[] in SocketStream>>waitForData
> >>>Socket>>waitForDataFor:ifClosed:ifTimedOut:
> >>>SocketStream>>waitForData
> >>>SocketStream>>receiveData
> >>>SocketStream>>upToAll:limit:
> >>>SocketStream>>upToAll:
> >>>WebResponse>>readFrom:
> >>>WebClient>>sendRequest:contentBlock:
> >>>WebClient>>sendRequest:content:size:
> >>>WebClient>>httpPut:content:type:do:
> >>>[] in HTTPSocket class>>httpPut:to:user:passwd:
> >>>BlockClosure>>ensure:
> >>>HTTPSocket class>>httpPut:to:user:passwd:
> >>>[] in MCHttpRepository>>writeStreamForFileNamed:replace:do:
> >>>BlockClosure>>on:do:
> >>>[] in MCHttpRepository>>displayProgress:during:
> >>>[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
> >>>BlockClosure>>on:do:
> >>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> >>>[] in MorphicUIManager>>displayProgress:at:from:to:during:
> >>>BlockClosure>>ensure:
> >>>MorphicUIManager>>displayProgress:at:from:to:during:
> >>>ProgressInitiationException>>defaultResumeValue
> >>>ProgressInitiationException(Exception)>>resume
> >>>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:
> >>>ByteString(String)>>displayProgressFrom:to:during:
> >>>MCHttpRepository>>displayProgress:during:
> >>>MCHttpRepository>>writeStreamForFileNamed:replace:do:
> >>>MCHttpRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do:
> >>>MCHttpRepository(MCFileBasedRepository)>>basicStoreVersion:
> >>>MCHttpRepository(MCRepository)>>storeVersion:
> >>>[] in MCWorkingCopyBrowser>>saveVersion
> >>>BlockClosure>>ensure:
> >>>CursorWithMask(Cursor)>>showWhile:
> >>>MCWorkingCopyBrowser>>saveVersion
> >>>PluggableButtonMorphPlus(PluggableButtonMorph)>>performAction
> >>>PluggableButtonMorphPlus>>performAction
> >>>[] in PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp:
> >>>Array(SequenceableCollection)>>do:
> >>>PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp:
> >>>PluggableButtonMorphPlus(Morph)>>handleMouseUp:
> >>>MouseButtonEvent>>sentTo:
> >>>PluggableButtonMorphPlus(Morph)>>handleEvent:
> >>>PluggableButtonMorphPlus(Morph)>>handleFocusEvent:
> >>>MorphicEventDispatcher>>doHandlingForFocusEvent:with:
> >>>MorphicEventDispatcher>>dispatchFocusEvent:with:
> >>>PluggableButtonMorphPlus(Morph)>>processFocusEvent:using:
> >>>PluggableButtonMorphPlus(Morph)>>processFocusEvent:
> >>>[] in [] in [] in HandMorph>>sendFocusEvent:to:clear:
> >>>BlockClosure>>ensure:
> >>>MouseButtonEvent(MorphicEvent)>>becomeActiveDuring:
> >>>[] in [] in HandMorph>>sendFocusEvent:to:clear:
> >>>BlockClosure>>ensure:
> >>>HandMorph>>becomeActiveDuring:
> >>>[] in HandMorph>>sendFocusEvent:to:clear:
> >>>BlockClosure>>ensure:
> >>>-- and more not shown --'
> >>>tim
> >>>--
> >>>tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
> >>>Useful random insult:- Hid behind the door when they passed out brains.
> >>>
> >>>
> >>>
> >>
>
More information about the Squeak-dev
mailing list
|