Opened 14 years ago

Closed 13 years ago

#518 closed defect (duplicate)

xapian-compact: error output does not state source of evil

Reported by: Ime Smits Owned by: Olly Betts
Priority: normal Milestone:
Component: Backend-Flint Version: 1.2.3
Severity: critical Keywords:
Cc: Blocked By:
Blocking: Operating System: All

Description (last modified by Olly Betts)

In case xapian-compact is provided multiple source flint files and one of them contains a database corruption, the error message does not state the source file:

./usr/bin/xapian-compact: DatabaseCorruptError: Unexpected end of table when reading continuation of tag

In the use case at hand, a periodic merge of about 200 partial xapian db's is done using xapian-compact overnight; the error message makes troubleshooting harder than it should be, because it doesn't state the source of evil. Sure this can be figured using strace and friends, however, it shouldn't be difficult to patch the error message to read instead:

./usr/bin/xapian-compact: DatabaseCorruptError: Unexpected end of table when reading continuation of tag in source database <whatever>.

Binary: xapian-compact - xapian-core 1.2.3 OS: Debian Stable, amd64

Change History (1)

comment:1 by Olly Betts, 13 years ago

Description: modified (diff)
Operating System: LinuxAll
Resolution: duplicate
Status: newclosed
Version: 1.2.3

Hi, thanks for your bug report.

I don't think this is can be specific to compaction since this message comes from the backend level - it appears one of your input databases is corrupt (you only happen to notice this during compaction because compacting tries to copy all the entries whereas any search only looks at a small number of them). Currently the easiest way to check which is to run xapian-check on each of them.

We already have a ticket for the issue that exceptions often don't mention the database involved (#329) so I'm closing this ticket as a duplicate of that existing ticket.

If all your inputs are OK by xapian-check, please reopen this ticket.

Note: See TracTickets for help on using tickets.