[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