I seem to be seeing cases where I call db.delete_document(somedocid) with no error, then flush() and delete the database object, but the document is still there after process exit. The write lock is normally deleted, so it appears that the database close finished normally. If I then then call delete_document(somedocid) from another command/process, this time it goes away. I've been seeing this forever (it's not related to a recent xapian version or a flint/quartz thing). This seems to be somehow related to the index state (on a given index, deletes work until they stop working, and I have to reindex from scratch to get back to normal). Would someone have any beginning of an idea of what could cause this ? I'm quite probably doing something stupid. Regards, Jean-Francois Dockes
On Tue, Jun 19, 2007 at 07:20:18PM +0200, Jean-Francois Dockes wrote:> I seem to be seeing cases where I call db.delete_document(somedocid) with > no error, then flush() and delete the database object, but the document is > still there after process exit. The write lock is normally deleted, so it > appears that the database close finished normally. > > If I then then call delete_document(somedocid) from another > command/process, this time it goes away. > > I've been seeing this forever (it's not related to a recent xapian version > or a flint/quartz thing). This seems to be somehow related to the index > state (on a given index, deletes work until they stop working, and I have > to reindex from scratch to get back to normal).Do you see this in 1.0.0 or later? This fix went in before 1.0.0, but I can't recall exactly what the symptoms were, nor find a relevant mail or bug report... Mon Apr 09 14:50:40 BST 2007 Olly Betts <olly@survex.com> * backends/flint/flint_database.cc: Delete the corresponding entry (if any) from doclens in delete_document(). Add assertion to add_document_() that the corresponding entry in doclens isn't already set, but in a non-debug build overwrite any existing entry as that's more likely to be correct. * backends/quartz/quartz_database.cc: Ditto. Cheers, Olly
Yes, the problem seems to be gone. Any idea why I was apparently the only one to trigger it ? Thanks a lot, J.F. Olly Betts writes: > On Wed, Jun 20, 2007 at 11:44:30AM +0200, Jean-Francois Dockes wrote: > > I seem to have managed to reproduce it with a simple sequence on a small > > data set. > > I think this patch should fix the problem - can you try it out and let > me know: > > http://oligarchy.co.uk/xapian/patches/xapian-delete-document.patch > > Cheers, > Olly
Possibly Parallel Threads
- Re: [Xapian-commits] 8157: trunk/xapian-core/ trunk/xapian-core/backends/flint/ trunk/xapian-core/backends/quartz/
- BUG IN XAPIAN_FLUSH_THRESHOLD
- Xapian 1.3.5 snapshot performance and index size
- Ranking and term proximity
- Xapian 1.3.5 snapshot performance and index size