Problems with Daylight saving time in VA Smalltalk
All the requests that Cloudfork-AWS sends to the Amazon web services contain the current date and time in Coordinated Universal Time (UTC). If this timestamp differs more than a few seconds from the current time you get an error. For example the S3 error: RequestTimeTooSkewed – The difference between the request time and the current time is too large. The reason for this time check is security, it prevents “record en playback” attacks.
So systems that make use of AWS must have the correct time and also the timezone must be correct. Otherwise the conversion to UTC will give the wrong result. A few days ago this all worked perfectly in VA Smalltalk, but tonight all AWS calls fail
Last night we in The Netherlands switched to Daylight saving time (DST). VA Smalltalk doesn’t seem to handle this very well. A call to “DateAndTime now” still returns an offset from UTC as one hour instead of two. It seems that this is a known problem.
Until this problem is fixed we have to use a less than elegant solution to get things working again. We have added a “DSTMode” flag, when this flag is true we subtract an extra hour when converting to UTC. You can enable this mode by executing:
CFPlatformServiceVASTUtils enableDSTMode: true
Support for the DSTMode was built into Cloudfork version jvds.79.
Tags: aws, s3, simpledb, sqs, vasmalltalk
You can comment below, or link to this permanent URL from your own site.
March 30, 2009 at 11:53
I was getting this kind of problem in the VW version as well…
March 31, 2009 at 20:27
The VisualWorks version of Cloudfork has been fixed. See bundle Cloudfork-All (1.4+)
March 31, 2009 at 23:07
This is exactly the sort of problem that Chronos (http://www.chronos-st.org/) was designed to solve…