[Xapian-discuss] "Error reading block xxx: got end of file"

Olly Betts olly@survex.com
Tue, 11 May 2004 19:27:45 +0100


On Tue, May 11, 2004 at 02:06:29PM -0400, Eric Ridge wrote:
> On May 11, 2004, at 1:54 PM, Olly Betts wrote:
> 
> >Quartz tried to read a block off the end of the Btree file.
> 
> I guess the question is "why?" would it try to do that?  Is it a bug in 
> Quartz, am I doing something wrong, or was it a solar flare?

If you're certain you've not tried to update concurrently, it's probably
a quartz/btree bug.  Or the file has been corrupted by some other
means...

> Does .replace_document() do anything special/tricky above and beyond a
> .delete_document() + .add_document() (other than re-use the existing
> docid)?

It's not really implemented like that internally, but there's nothing
particularly magic about replace_document.

> >First thing to do is to run "quartzcheck" on the database to see if the
> >btree's are consistent.
> 
> we'll do this once the job finishes.  We've got other indexes to update 
> as well, and need to wait out the storm on this index first.

It could be one of the btrees is broken (in which case working out why
may be hard).  Or it could be the btree is fine, but the reading code
is wrong in a subtle corner case...

Cheers,
    Olly