errors on rebuild
Ryan Cross
rcross at amsl.com
Thu Mar 2 22:48:36 GMT 2017
Hi Olly,
Thanks for the detailed response. I hadn’t realized there was a new xapian haystack backend. I’m going to try that but I have some upgrades to do first. Django 1.8, etc.
Thanks,
Ryan
> On Feb 28, 2017, at 3:40 PM, Olly Betts <olly at survex.com> wrote:
>
> On Mon, Feb 27, 2017 at 10:29:46AM -0800, Ryan Cross wrote:
>> I am trying to rebuild an index of 2+ million documents and have not been successful. I am running
>>
>> Python 2.7
>> Django 1.7
>> Haystack 2.1.1
>> Xapian 1.2.21
>>
>> The index rebuild command I’m using is: django-admin.py rebuild_index --noinput --batch-size=100000
>> The rebuild completes but an immediate xapian-check returns this error:
> [...]
>> Trying the latest stable version, Xapian 1.4.3, it fails during the rebuild:
>>
>> All documents removed.
>> Indexing 2233651 messages
>> Traceback (most recent call last):
>> …
>>
>> File "/a/mailarch/current/haystack/management/commands/update_index.py", line 221, in handle_label
>> self.update_backend(label, using)
>> File "/a/mailarch/current/haystack/management/commands/update_index.py", line 266, in update_backend
>> do_update(backend, index, qs, start, end, total, self.verbosity)
>> File "/a/mailarch/current/haystack/management/commands/update_index.py", line 89, in do_update
>> backend.update(index, current_qs)
>> File "/a/mailarch/current/haystack/backends/xapian_backend.py", line 286, in update
>> database.close()
>
> What's the version of xapian-haystack? There's not a database.close() anywhere
> near line 286 in git master:
>
> https://github.com/notanumber/xapian-haystack/blob/master/xapian_backend.py#L286
>
>> xapian.DatabaseCorruptError: Expected block 615203 to be level 0, not 1
>> docdata:
>> blocksize=8K items=380000 firstunused=21983 revision=38 levels=2 root=21410
>
> Is that the full output of xapian-check?
>
>> Any suggestions for how I could get more information to troubleshoot this
>> failure would be greatly appreciated.
>
> Is the data to reproduce this something you can make available?
>
> I'd stick with Xapian 1.4.3 for trying to narrow this down (if it's a Xapian
> bug we can backport the fix once identified).
>
> The error message means that a block which was expected to be at the leaf level
> was actually marked as being one level above, which suggests either there's an
> obscure bug in the backend code which only manifests in rare circumstances, or
> something is corrupting data (could be in memory or on disk).
>
> Since this happens with both 1.2.x and 1.4.x I would tend to suspect it's
> something external (rather than a bug in Xapian) as the default backends in 1.2
> and 1.4 have some significant differences. It's certainly possible it's a
> Xapian bug, but if so I would expect we'd be seeing other reports, though maybe
> we've actually had one or two and thought them due to #675, which was fixed in
> 1.2.21 (however nobody's yet said "no, still seeing that"):
>
> https://trac.xapian.org/ticket/675
>
> You could look at block 615203 of docdata.glass to see what it looks like -
> that might offer clues:
>
> xxd -g1 -seek $((615203*8192)) -len 8192 docdata.glass
>
> It'd also be good to eliminate possible system issues - e.g. check the disk is
> healthy (check the SMART status, run fsck on it), run a RAM test (distros often
> provide a way to run memtest86+ or similar from the boot menu).
>
> Cheers,
> Olly
More information about the Xapian-discuss
mailing list