[ZODB-Dev] More Info, Still Stuck :-(

Toby Dickenson tdickenson@geminidataloggers.com
Mon, 22 Oct 2001 12:31:42 +0100


On Fri, 19 Oct 2001 15:33:17 +0100, Chris Withers <chrisw@nipltd.com>
wrote:

>Chris Withers wrote:
>>=20
>> copyTransactionsFrom
>>     s=3Dself.store(oid, pre, r.data, r.version, transaction)
>>   File "/var/local/zope/storage/lib/python/bsddb3Storage/Full.py", =
line 573, in
>> store
>>   File "/usr/local/zope/2.4.0_base/lib/python/ZODB/utils.py", line =
109, in U64
>>     h, v =3D unpack(">II", v)
>> TypeError: unpack() argument 2 must be string or read-only buffer, not=
 None
>
>Well, a bit of unmasking (wrapping the raise in a try...except that =
replaced
>utils.U64(serial) with just serial means the following exception is now =
yielded:
>
>Traceback (most recent call last):
>  File "fs2bdbs.py", line 25, in ?
>    dst.copyTransactionsFrom(src)
>  File "/usr/local/zope/2.4.0_base/lib/python/ZODB/BaseStorage.py", line=
 293, in
>copyTransactionsFrom
>    s=3Dself.store(oid, pre, r.data, r.version, transaction)
>  File "/var/local/zope/production/lib/python/bsddb3Storage/Full.py", =
line 578,
>in store
>    raise POSException.ConflictError(
>ZODB.POSException.ConflictError: serial number mismatch (was: @=95=DA?n =
 has: None)
>
>Now, None as a transaction serial number to me seems very wrong. Does =
anyone
>have any idea what could have caused this and how I can correct it?

Ive seen something similar before where TmpStorage (the store used in
subtransactions) wasnt expecting None as a transaction id. In that
case the None was generated as part of an import from a .zexp file. Im
not sure if that relevant to you, but it might be a clue.



Toby Dickenson
tdickenson@geminidataloggers.com