Squeak and Seaside Stability
Keith Hodges
keith_hodges at yahoo.co.uk
Tue Dec 19 20:54:22 UTC 2006
A fix for the smalltalk bug is to make sure that the timeout calculation
similarly rolls over.
i.e.
deadlineSecs: secs
"Return a deadline time the given number of seconds from now."
^ (Time millisecondClockValue + (secs * 1000) truncated) \\ SmallInteger
maxVal.
The code in question does not use Socket-#deadlineSecs: and there are
many many places in the image that could be caught by this. The solution
is to put this code on Time and encourage its use.
Time-deadlineSecs:
Time-pastDeadline: deadline
of course if your millisecondClock has got stuck then its a vm problem
Keith
> If the millisecondClock is close to rolling over then the deadline may
> be set in the future to a number greater than SmallInteger maxVal and
> timeouts will never complete.
>
> For Socket the default timeout is 45 seconds. So thinking about it
> this error is only likely to occur for 45 seconds every 12 days or so,
> but it will occur if there is code which relies upon the timeout itself.
>
> Now this is a complete guess but it might be your explanation. What if
> somehow your millisecond clock has failed to roll over and might be
> stuck in that dangerous region ie. at SmallInteger maxVal.
>
> Keith
>
>
>
>
>
> ___________________________________________________________ Try the
> all-new Yahoo! Mail. "The New Version is radically easier to use" –
> The Wall Street Journal http://uk.docs.yahoo.com/nowyoucan.html
>
>
___________________________________________________________
All New Yahoo! Mail – Tired of Vi at gr@! come-ons? Let our SpamGuard protect you. http://uk.docs.yahoo.com/nowyoucan.html
More information about the Squeak-dev
mailing list
|