[ZODB-Dev] A couple of repozo buglets

Marius Gedminas marius at gedmin.as
Wed Dec 7 01:00:10 UTC 2011


With complimentary automated functional test cases and a README at
https://github.com/mgedmin/repozo-testcases


Bug #1: insufficient error detection.

You can truncate a *.deltafs in the middle, and repozo -R doesn't notice
-- it goes on to produce a corrupt Data.fs.

AFAIU the *.dat file contains enough information to do basic sanity
checking for the sizes of the various *.deltafs files.  It'd be nice if
repozo -R noticed and aborted with a loud complaint when one of the
files is truncated.  Checksum checking would be even nicer, but,
perhaps, expensive, and so maybe ought to require an extra command line
option to enable.

To reproduce:

  git clone git://github.com/mgedmin/repozo-testcases.git
  cd repozo-testcases
  make test2


Bug #2: two frequent runs of repozo -B may cause repozo -R to silently
produce a corrupt Data.fs.

Discovered while I was writing the above test case.  If there's a
timestamp collision between the original .fs and the first .deltafs,
repozo -R produces a truncated Data.fs.  (If there's a timestamp
collision between two .deltafs files, repozo -B aborts with an error,
which is fine by me.)

To reproduce:

  git clone git://github.com/mgedmin/repozo-testcases.git
  cd repozo-testcases
  make test1


I've found the first bug in ZODB3  3.9.7, and reproduced both with the
latest ZODB3 3.10.5.


I'm not opposed to spending some time working on this, if somebody can
provide some hand-holding on IRC (I've motivation issues due to burnout).


Hm, this email is probably more descriptive than the README.txt.

Marius Gedminas
-- 
The clothes have no emperor.
                -- C.A.R. Hoare, commenting on ADA.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://mail.zope.org/pipermail/zodb-dev/attachments/20111207/5238541c/attachment.sig>


More information about the ZODB-Dev mailing list