Jonathan wrote at 2006-7-5 14:40 -0400: > ... >The id for the image object is generated by the following code: > >def MakeId(): > time.sleep(.01) > ts = string.replace(str(time.time()),'.', '') # remove floating point >'.' char > return ts[-10:] > >So there should not be any collision of ids.
You should verify this. I doubt that you are right, as both the scheduling as well as the clock granularity are discrete (and rather coarse). I suggest you use either the mechanism of * the "BrowserIdManager"::it combines a time with a random number * the "ZCatalog": it chooses per thread a random number and then assignes sequentially, until a conflict happens. Then it restarts (choosing a random number...) >I am still investing, and have found errors like: > >2006-07-04T14:48:12 ERROR ZODB.Connection Couldn't load state for 0x1c >Traceback (most recent call last): > File "/usr/local/Zope-2.9.2/lib/python/ZODB/Connection.py", line 732, in >setstate > self._setstate(obj) > File "/usr/local/Zope-2.9.2/lib/python/ZODB/Connection.py", line 768, in >_setstate > p, serial = self._storage.load(obj._p_oid, self._version) > File "/usr/local/Zope-2.9.2/lib/python/tempstorage/TemporaryStorage.py", >line 104, in load > s=self._index[oid] >KeyError: '\x00\x00\x00\x00\x00\x00\x00\x1c' > >in the event.log. Apparently, you have more than a single type of error... Are you the person that used "try: ... except: ..."? The non-deterministic inconsistencies caused by such constructs can look like what you decribe above... -- Dieter _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )