[squeak-dev] Squeaksource upload/respnse problem? (was Re: The Inbox: EToys-tpr.321.mcz)

Tobias Pape Das.Linux at gmx.de
Thu Mar 8 08:07:39 UTC 2018


> On 08.03.2018, at 01:50, David T. Lewis <lewis at mail.msen.com> wrote:
> 
> 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?
> 

When running on Squeak, it acts like squeaksource.com, where the operator has to create backups.

When running on GemStone, it does not do anything, as it relies on GemStones transactions anyway.

That being said, SS3 can be configured to not write anything to disk but keep all thing in memory anyway.

Also, it does anything fancy (mails, statistics,...) on a separate process or (in gemstones case) a separate vm.

Best regards
	-Tobias

> 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