[Zope-dev] Fwd: Help with RelStorage ...

Shane Hathaway shane at hathawaymix.org
Sat Dec 13 21:56:06 EST 2008


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



More information about the Zope-Dev mailing list