Great! I was hoping that would do it.

Cheers,
  - Andreas

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]] On Behalf Of Baveco, Hans
> Sent: Thursday, February 14, 2002 2:22 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: [pws] Problem with Swiki not serving images
> 
> 
> For me it looks like the new VM solves the problem (on W2K) of 
> 1) swiki-icons not (re)appearing always
> 2) edits resulting in server not found (IIRC) errors
> A nice catch! Thanks, 
> Hans
> 
> -----Original Message-----
> From: Andreas Raab [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, February 14, 2002 1:09 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [pws] Problem with Swiki not serving images
> 
> 
> Folks,
> 
> I still didn't have any time to test on Win2K but Diego Gomez 
> reported a
> networking problem which allowed me to track down another of those
> network buggers (fortunately, he had a reliable test case). Could
> somebody try to see if the latest fixes do solve the problems you've
> been seeing?! There's a new VM in town at:
> 
>       
> http://isgwww.cs.uni-magdeburg.de/~raab/squeak/alpha/SqueakNetFix2.zip
> 
> If you're interested, below is the message to Diego explaining the
> problem.
> 
> Cheers,
>   - Andreas
> 
> 
> -----Original Message-----
> From: Andreas Raab [mailto:[EMAIL PROTECTED]] 
> Sent: Thursday, February 14, 2002 12:19 AM
> To: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
> Subject: RE: RE: A Windows socket question
> 
> 
> Diego,
> 
> I found it. As I said that was an _excellent_ catch. For your 
> amusement
> here's what happened: The real problem was that the VM didn't clean up
> the OS socket handle when a close operation succeeded. Now 
> this doesn't
> sound like a big problem, but you need to consider that there's a
> destroy operation following afterwards which may operate on the
> (successfully closed) socket handle. Usually, this results in 
> a sequence
> where if the close succeeds the destroy fails. Which is 
> effectively fine
> since abort is really the last resort and may fail without 
> causing harm.
> 
> _HOWEVER_, something in your configuration went slightly 
> different (I'm
> not even quite sure how ;-) In effect, what happened was that 
> inbetween
> the close and the destroy a new socket was accepted. This 
> happens on the
> VM level (e.g., in a separate thread which is basically run 
> at interrupt
> time). And this operation could give the newly accepted socket the
> handle of the socket which was closed before (since after a successful
> close the socket handle is invalid). Which - just a second later - got
> destroyed. E.g., the sequence is roughly as follows:
> 
> server accepts socket with handle XXX
> server processes data using socket
> server closes socket with handle XXX
>    <- client attempt new connection ->
>    <- server VM accepts new socket in thread with handle XXX ->
> server destroys socket with handle XXX
> 
> This leaves the client in the state where it thinks the connection has
> been abnormally closed by the host (which is correct!) and 
> the host in a
> state where it may even think that the socket is entirely valid! Note
> that one of the interesting things here is that due to Squeak process
> scheduling the time between the close and the destroy can be 
> arbitrarily
> large.
> 
> Anyways, I've uploaded a new VM onto
> 
>       
http://isgwww.cs.uni-magdeburg.de/~raab/squeak/alpha/SqueakNetFix2.zip

which solves that problem. Let me know how it goes - if it works out
I'll inform the PWS people.

Cheers,
  - Andreas


Reply via email to