[VM][BUG?] GOODS freezing on Windows

Avi Bryant avi at beta4.com
Wed Nov 12 21:07:36 UTC 2003


The GOODS client is having issues on Windows that don't show up on 
other platforms.  Brian Brown and I have been doing some investigation 
into this, and we're perplexed.  After certain requests to the GOODS 
server, the client will wait forever for a response without receiving 
one.  This often happens during a commit request, although it's also 
been observed with other requests.  The odd thing is that Ethereal 
shows that the server *is* sending out a response, and the client is 
sending an ACK back - but the packet never shows up in Squeak.  This is 
totally reproduceable.

Things that don't seem to make any difference:
- where the GOODS server is running (Windows, Linux, FreeBSD)
- which Windows VM is used (3.5.1 or 3.6)
- whether OldSocket or Socket is used
- whether #receiveDataInto:startingAt: (blocking) or 
#receiveSomeDataInto:startingAt: (busy waiting) is sent to Socket

The code that is supposed to be receiving the response is this:

receiveFullyInto: bufferArray
	|i size|
	i := 1.
	size := bufferArray size.
	[i > size] whileFalse: [i := i + (socket receiveDataInto: bufferArray 
startingAt: i)].

In the cases where the problem has been observed, bufferArray is always 
of size 16, the size of most responses in the GOODS protocol.  Ethereal 
shows the response coming back with all 16 bytes in one packet.  
However, #receiveDataInto:startingAt: never returns.

Anyone able to clue us in?  Andreas?

Avi




More information about the Squeak-dev mailing list