[BUG]Semaphore>>waitTimeoutMSecs: (while using an FTP ServerDirectory)

Daniel Vainsencher danielv at netvision.net.il
Fri Jul 25 11:09:21 UTC 2003


I am trying to add support of FTP as a repository type for Monticello.
My initial change was simply to make DirectoryRepository use its stored
directory (which is currently ignored) for file saving and loading.
Since the server directory is supposed to be polymorphic with
directories, this should "just work". Alas...

I've noticed is that a file was sometimes created on the remote
repository, but with 0k length. In the current case no file was created.
The stack below shows that when the file gets closed, it starts to send
it data, to do which it connects, but for some reason, hangs in the
authentication phase. I've succeeded in using an external ftp client to
access this repository, and the FileList also can easily show me
directory contents (using the same source for the settings, so that's
not the problem). 

I've tried to load both Michaels latest networking fixes, and Anthonys
latest unwind fix, to no avail (used in the dump below).

Ideas?

Daniel

25 July 2003 2:00:17 pm

VM: unix - Squeak3.4 of 1 March 2003 [latest update: #5170]
Image: Squeak3.6beta [latest update: #5371]

Semaphore>>waitTimeoutMSecs:
	Receiver: a Semaphore()
	Arguments and temporary variables: 
		anInteger: 	45000
		d: 	a Delay
	Receiver's instance variables: 
		firstLink: 	nil
		lastLink: 	nil
		excessSignals: 	2

Socket>>waitForDataFor:
	Receiver: a Socket[connected]
	Arguments and temporary variables: 
		timeout: 	45
		deadline: 	199707509
	Receiver's instance variables: 
		semaphore: 	a Semaphore()
		socketHandle: 	a ByteArray(141 162 117 64 0 0 0 0 128 45 22 8)
		readSemaphore: 	a Semaphore()
		writeSemaphore: 	a Semaphore()
		primitiveOnlySupportsOneSemaphore: 	false

Socket>>receiveDataTimeout:into:startingAt:
	Receiver: a Socket[connected]
	Arguments and temporary variables: 
		timeout: 	45
		aStringOrByteArray: 	'
	Receiver's instance variables: 
		semaphore: 	a Semaphore()
		socketHandle: 	a ByteArray(141 162 117 64 0 0 0 0 128 45 22 8)
		readSemaphore: 	a Semaphore()
		writeSemaphore: 	a Semaphore()
		primitiveOnlySupportsOneSemaphore: 	false


--- The full stack ---
Semaphore>>waitTimeoutMSecs:
Socket>>waitForDataFor:
Socket>>receiveDataTimeout:into:startingAt:
Socket>>receiveDataTimeout:into:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SocketStream>>receiveData
SocketStream>>upToAll:
SocketStream>>nextLineCrLf
SocketStream>>nextLine
FTPClient(TelnetProtocolClient)>>fetchNextResponse
FTPClient(TelnetProtocolClient)>>lookForCode:ifDifferent:
FTPClient(TelnetProtocolClient)>>lookForCode:
[] in FTPClient>>login
BlockContext>>on:do:
FTPClient>>login
FTPClient>>loginUser:password:
[] in ServerFile(ServerDirectory)>>openFTPClient
BlockContext>>on:do:
ServerFile(ServerDirectory)>>openFTPClient
ServerFile(ServerDirectory)>>putFile:named:
RemoteFileStream>>close
[] in Socket>>sendStreamContents:checkBlock:
BlockContext>>ensure:
Socket>>sendStreamContents:checkBlock:
FTPClient>>sendStreamContents:
[] in FTPClient>>putFileStreamContents:as:
BlockContext>>ensure:
FTPClient>>putFileStreamContents:as:
[] in ServerFile(ServerDirectory)>>putFile:named:
BlockContext>>ensure:
ServerFile(ServerDirectory)>>putFile:named:
RemoteFileStream>>close
[] in Socket>>sendStreamContents:checkBlock:
BlockContext>>ensure:
Socket>>sendStreamContents:checkBlock:
FTPClient>>sendStreamContents:
[] in FTPClient>>putFileStreamContents:as:
BlockContext>>ensure:
FTPClient>>putFileStreamContents:as:
[] in ServerFile(ServerDirectory)>>putFile:named:
BlockContext>>ensure:
ServerFile(ServerDirectory)>>putFile:named:
RemoteFileStream>>close
[] in Socket>>sendStreamContents:checkBlock:
BlockContext>>ensure:
Socket>>sendStreamContents:checkBlock:
FTPClient>>sendStreamContents:
[] in FTPClient>>putFileStreamContents:as:
BlockContext>>ensure:
FTPClient>>putFileStreamContents:as:
[] in ServerFile(ServerDirectory)>>putFile:named:
BlockContext>>ensure:
ServerFile(ServerDirectory)>>putFile:named:
RemoteFileStream>>close
[] in Socket>>sendStreamContents:checkBlock:
BlockContext>>ensure:
Socket>>sendStreamContents:checkBlock:
FTPClient>>sendStreamContents:
[] in FTPClient>>putFileStreamContents:as:
BlockContext>>ensure:
FTPClient>>putFileStreamContents:as:
[] in ServerFile(ServerDirectory)>>putFile:named:
-- and more not shown --



More information about the Squeak-dev mailing list