ZODB icon indicating copy to clipboard operation
ZODB copied to clipboard

referencesf hits assertion for None

Open prc33 opened this issue 7 years ago • 2 comments

I'm afraid I don't know enough about ZODB's internals to know whether this is simply a symptom of a corrupted database file, or an edge case that pack can't handle. The database file seems to behave correctly within my application, but if I try to pack it then I hit this assertion: https://github.com/zopefoundation/ZODB/blame/master/src/ZODB/serialize.py#L668

Putting a break point there, this the current state:

p = 'cdb\nPulse\nq\x01.}q\x02(U\x05entryq\x03(c_codecs\nencode\nq\x04(X\t\x00\x00\x00\x00\x00\x00\x00\x00H<\xc3\xa7q\x05U\x06latin1q\x06tRq\x07cdb\nEntry\nq\x08tQU\x05validq\tI01\nU\x04timeq\ncdecimal\nDecimal\nq\x0b(U\n33425.5688q\x0ctRq\rU\x03dsqq\x0eI00\nu.'
refs = [(None, None)]

Skipping over the oid of None seems to allow the pack to complete and produce a database file where loads of significant parts of the database are completely fine. Whether it has left parts with errors I can't be sure.

prc33 avatar May 12 '18 11:05 prc33

Thanks for the report. Sorry for the slow reply.

I'm at PyCon this week and haven't had time to look at this.

I might be a bit longer before I look at this.

jimfulton avatar May 15 '18 12:05 jimfulton

Hi Jim,

Did you have a chance to dig into this at all?

prc33 avatar Oct 07 '18 15:10 prc33