[Xapian-tickets] [Xapian] #284: occasional !DatabaseModifiedErrors

Xapian nobody at xapian.org
Wed Jul 23 17:36:02 BST 2008

#284: occasional !DatabaseModifiedErrors
 Reporter:  mrks           |        Owner:  olly    
     Type:  defect         |       Status:  assigned
 Priority:  normal         |    Milestone:  1.0.8   
Component:  Backend-Flint  |      Version:  1.0.7   
 Severity:  normal         |   Resolution:          
 Keywords:                 |    Blockedby:          
 Platform:  Linux          |     Blocking:          

Comment(by richard):

 The extra fdatasync() is worth a try, though I can't quite see how that
 can be the explanation, because the new root block shouldn't be being
 accessed until the new basefile has been written (or at least, not by a
 reader open at the old revision.

 In the error printfs, I notice that the version numbers are 2 apart (eg
 "10194 > 10192").  So, this means a reader open at rev 10192 is finding
 that a block it wanted to read is now part of revision 10194.  This looks
 very much as if the reopen has failed to work, somehow.  Do we know what
 the reader is doing when the error occurs?  One possibility that occurred
 to me is that the reopen() call itself is throwing the error - perhaps
 it's trying to read a block as part of the cleanup of the old revision or
 something (though I haven't found anything in the code to reflect that).

Ticket URL: <http://trac.xapian.org/ticket/284#comment:2>
Xapian <http://xapian.org/>

More information about the Xapian-tickets mailing list