[Xapian-tickets] [Xapian] #236: Implement automated tests of concurrent db replication and modification
Xapian
nobody at xapian.org
Tue Dec 16 15:14:59 GMT 2008
#236: Implement automated tests of concurrent db replication and modification
---------------------------+------------------------------------------------
Reporter: richard | Owner: richard
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: Backend-Flint | Version: SVN trunk
Severity: normal | Resolution:
Keywords: | Blockedby:
Platform: All | Blocking:
---------------------------+------------------------------------------------
Old description:
> Currently, there is no automated test of the behaviour when the
> replication
> function is doing a full copy of a database which gets modified while the
> copy
> is in progress.
>
> I've done a manual test of this, so I'm moderately confident it works
> right, but
> I can't work out how to do a reliable automated test of it... at least,
> not
> without hacking a big sleep (or even a condition) into the database
> copying
> code, to allow me to be sure of getting some modifications done in the
> middle of it.
>
> Any suggestions appreciated.
New description:
Currently, there is no automated test of the behaviour when the
replication
function is doing a full copy of a database which gets modified while the
copy
is in progress.
I've done a manual test of this, so I'm moderately confident it works
right, but
I can't work out how to do a reliable automated test of it... at least,
not
without hacking a big sleep (or even a condition) into the database
copying
code, to allow me to be sure of getting some modifications done in the
middle of it.
Any suggestions appreciated.
--
Comment(by richard):
I've now had some reports which lead me to believe there is a race
condition here, which causes the client to attempt to open an invalid
database (invalid due to some of the files involved in the full database
copy having been deleted before the server could send them) and fail.
The intention was that this would be recovered by sending followup
changesets to the client, which would be applied in turn and result in a
valid database. However, the client attempts to open the database before
these changesets have been applied, and fails, leaving an invalid database
(and also blocking future replication attempts).
I'm attempting to fix this, but making a repeatable test for it is rather
hard...
--
Ticket URL: <http://trac.xapian.org/ticket/236#comment:6>
Xapian <http://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list