Aargh! Re: [UPDATES] Network rewrite for 3.6alpha

Ned Konz ned at bike-nomad.com
Wed Jun 11 14:36:47 UTC 2003


On Tuesday 10 June 2003 10:34 pm, Doug Way wrote:
> Here is Michael Rueger's network rewrite which has been on
> SqueakMap for a while and tweaked several times, now included in
> the update stream as part of the recent 3.6 plan.
>
> (Hopefully I've decomposed the .sar file correctly...)

Humph. I just tried to update a 5427 image...

While loading this from the updates stream I got a walkback (before 
the netRemove):
------------------
NetNameResolver class(Object)>>doesNotUnderstand:
	Receiver: NetNameResolver
	Arguments and temporary variables: 
		aMessage: 	a Message with selector: #initializeNetworkIfFail: and 
arguments: #([...etc...
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary()
		format: 	2
		instanceVariables: 	nil
		organization: 	('as yet unclassified')

		subclasses: 	nil
		name: 	#NetNameResolver
		classPool: 	a Dictionary(#DefaultHostName->'' #HaveNetwork->true 
#ResolverBusy->...etc...
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	nil

OldSocket class>>DoIt
	Receiver: OldSocket
	Arguments and temporary variables: 

	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#accept->a CompiledMethod (3475) 
#acceptFrom:->a...etc...
		format: 	140
		instanceVariables: 	#('semaphore' 'socketHandle' 'readSemaphore' 
'writeSemaphore...etc...
		organization: 	('initialize-destroy' acceptFrom: destroy 
initialize:)
('accessin...etc...
		subclasses: 	#(OldSimpleClientSocket)
		name: 	#OldSocket
		classPool: 	a Dictionary(#Connected->2 #DeadServer->'' 
#InvalidSocket->-1 #Other...etc...
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	nil

HTTPSocket class>>httpGetDocument:args:accept:request:
	Receiver: HTTPSocket
	Arguments and temporary variables: 
		url: 	
'http://squeak.cs.uiuc.edu/Squeak2.0/updates/5259net-remove-mir.cs'
		args: 	nil
		mimeType: 	'application/octet-stream'
		requestString: 	''
		serverName: 	nil
		serverAddr: 	nil
		port: 	nil
		sock: 	nil
		header: 	nil
		length: 	nil
		bare: 	nil
		page: 	nil
		list: 	nil
		firstData: 	nil
		aStream: 	nil
		index: 	nil
		connectToHost: 	nil
		connectToPort: 	nil
		type: 	nil
		newUrl: 	nil
	Receiver's instance variables: 
		superclass: 	OldSimpleClientSocket
		methodDict: 	a MethodDictionary(#contentType->a CompiledMethod 
(2942) #contentTy...etc...
		format: 	150
		instanceVariables: 	#('headerTokens' 'headers' 'responseCode')
		organization: 	('as yet unclassified' contentType contentType: 
contentsLength: g...etc...
		subclasses: 	#(FTPSocket)
		name: 	#HTTPSocket
		classPool: 	a Dictionary(#HTTPBlabEmail->'' #HTTPPort->80 
#HTTPProxyExceptions->...etc...
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	nil

HTTPSocket class>>httpGetDocument:
	Receiver: HTTPSocket
	Arguments and temporary variables: 
		url: 	
'http://squeak.cs.uiuc.edu/Squeak2.0/updates/5259net-remove-mir.cs'
	Receiver's instance variables: 
		superclass: 	OldSimpleClientSocket
		methodDict: 	a MethodDictionary(#contentType->a CompiledMethod 
(2942) #contentTy...etc...
		format: 	150
		instanceVariables: 	#('headerTokens' 'headers' 'responseCode')
		organization: 	('as yet unclassified' contentType contentType: 
contentsLength: g...etc...
		subclasses: 	#(FTPSocket)
		name: 	#HTTPSocket
		classPool: 	a Dictionary(#HTTPBlabEmail->'' #HTTPPort->80 
#HTTPProxyExceptions->...etc...
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	nil


--- The full stack ---
NetNameResolver class(Object)>>doesNotUnderstand:
OldSocket class>>DoIt
HTTPSocket class>>httpGetDocument:args:accept:request:
HTTPSocket class>>httpGetDocument:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HTTPClient class>>httpGetDocument:
HTTPClient class>>httpGet:
[] in Utilities class>>retrieveUrls:ontoQueue:withWaitSema:
OrderedCollection>>do:
[] in Utilities class>>retrieveUrls:ontoQueue:withWaitSema:
[] in BlockContext>>newProcess

------------------

And then it's hung. When I interrupt it, I see:


SharedQueue>>next
	Receiver: a SharedQueue
	Arguments and temporary variables: 
		value: 	nil
	Receiver's instance variables: 
		contentsArray: 	#(nil nil nil nil nil nil nil nil nil a 
RWBinaryOrTextStream)
		readPosition: 	10
		writePosition: 	10
		accessProtect: 	a Semaphore()
		readSynch: 	a Semaphore()

[] in Utilities 
class>>readServer:special:updatesThrough:saveLocally:updateImage:
	Arguments and temporary variables: 
		serverList: 	#('squeak.cs.uiuc.edu/Squeak2.0/' 
'update.squeakfoundation.org/exte...etc...
		indexPrefix: 	''
		maxNumber: 	nil
		saveLocally: 	false
		updateImage: 	true
		urls: 	an 
OrderedCollection('http://squeak.cs.uiuc.edu/Squeak2.0/updates/5248Squ...etc...
		failed: 	nil
		loaded: 	11
		docQueue: 	a SharedQueue
		this: 	
'http://squeak.cs.uiuc.edu/Squeak2.0/updates/5259net-remove-mir.cs'
		nextDoc: 	a RWBinaryOrTextStream
		docQueueSema: 	a Semaphore()
		str: 	nil
		updateName: 	'5258net-serverDir-mir.cs'
		url: 	'update.squeakfoundation.org/external/'

BlockContext>>ensure:
	Receiver: [] in Utilities 
class>>readServer:special:updatesThrough:saveLocally:updateImage:
	Arguments and temporary variables: 
		aBlock: 	[] in CursorWithMask(Cursor)>>showWhile:
		returnValue: 	nil
	Receiver's instance variables: 
		sender: 	BlockContext>>ensure:
		pc: 	239
		stackp: 	0
		nargs: 	0
		startpc: 	184
		home: 	Utilities 
class>>readServer:special:updatesThrough:saveLocally:updateImag...etc...

CursorWithMask(Cursor)>>showWhile:
	Receiver: ((CursorWithMask
	extent: 16 at 16
	depth: 1
	fromArray: #(
		2r0
		2r11111111111111100000000...etc...
	Arguments and temporary variables: 
		aBlock: 	[] in Utilities 
class>>readServer:special:updatesThrough:saveLocally:up...etc...
		oldcursor: 	((CursorWithMask
	extent: 16 at 16
	depth: 1
	fromArray: #(
		2r0
		2r1...etc...
	Receiver's instance variables: 
		bits: 	a Bitmap of length 16
		width: 	16
		height: 	16
		depth: 	1
		offset: 	-1 at -1
		maskForm: 	Form(16x16x1)


--- The full stack ---
SharedQueue>>next
[] in Utilities 
class>>readServer:special:updatesThrough:saveLocally:updateImage:
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Utilities 
class>>readServer:special:updatesThrough:saveLocally:updateImage:
Utilities class>>readServerUpdatesThrough:saveLocally:updateImage:
Utilities class>>readServerUpdatesSaveLocally:updateImage:
Utilities class>>updateFromServer
TheWorldMenu>>doMenuItem:with:

--------------

Now when I try to update, I get walkbacks because DeadServer is nil 
(not '' as it should be (I think)).

Perhaps the postscript should do a 

Socket deadServer: ''.

Additionally, every time I open a browser I get a walkback (in 
setSearch: ) because the autoSelectString is nil.

Has someone removed UndefinedObject>>asText?

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE



More information about the Squeak-dev mailing list