[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
|