Gareth Bult wrote:
I'm having a bit of a problem that looks like a 32 bit vs 64 bit issue with RelStorage, can anyone help?
We need to get more people to use RelStorage so more people can help. :-) This looks like a good clue:
====================================================================== FAIL: checkLoadBefore (__main__.MySQLTests) ———————————————————————- Traceback (most recent call last): File “/opt/Plone-3.1/Python-2.4/lib/python2.4/site-packages/ZODB3-3.8.1-py2.4-linux-x86_64.egg/ZODB/tests/RevisionStorage.py”, line 62, in checkLoadBefore assert prev < middle < cur # else the snooze() trick failed AssertionError
To debug this, I would add a pdb.set_trace() near this line and examine the variables when this code fails. Apparently prev >= cur, which suggests MySQL might be generating bad timestamps. Ooooh... how about this: ensure the MySQL server and the client are set to the same time zone and have synchronized clocks (using NTP), then run the tests again. If that solves the problem, then we need to add a note about clocks in the documentation. MySQL does not provide a fine grained current_timestamp() function, so RelStorage has a workaround that uses the client's timestamp instead. The workaround is disabled if the client and server are more than 60 seconds apart. I forgot to call this out in the documentation, and I would really like to find a better solution. Shane