Re: How to recover from this permanent fatal error?

Subject: Re: How to recover from this permanent fatal error?

Date: Mon, 07 Jun 2021 02:07:46 -0500

To: Olly Betts, Felipe Contreras

Cc: Xapian Discussion, notmuch@notmuchmail.org

From: Felipe Contreras


Olly Betts wrote:
> On Sun, Jun 06, 2021 at 07:48:39AM -0500, Felipe Contreras wrote:
> > On Sun, Jun 6, 2021 at 5:08 AM Olly Betts <olly@survex.com> wrote:
> > 
> > > You could try commenting out the body of GlassTable::set_overwritten()
> > > in xapian-core/backends/glass/glass_table.cc so it keeps going instead
> > > of throwing this exception, which might allow it to usefully recover
> > > some or all tags.  If you (or anyone) try that and it works let me know
> > > and I can patch the branch to emit a warning message and continue there.
> > 
> > Now I get this:
> > 
> > termlist:
> > blocksize=8K items=687440 firstunused=152676 revision=2 levels=2 root=749
> > /home/felipec/contrib/xapian/xapian-core/bin/.libs/lt-xapian-check:
> > DatabaseError: Block 152676: used more than once in the Btree
> 
> I've pushed a change to skip the low level table consistency checking on
> the branch since that's where this report is from.  The whole point of
> this branch is to rescue tags from a broken database, so the user
> presumably already ran the real xapian-check and it's not useful to be
> repeating those checks here.  Hopefully that'll get us to actually
> rescuing some tags!

Yeap, I was able to rescue some tags... only for 339296 mails ;)

I'm back to using notmuch.

This is the error I got:

  termlist:
  blocksize=8K items=687440 firstunused=152676 revision=2 levels=2 root=749
  doclen 168339 > upper bound 168335
  termlist table errors found: 1

  Total errors found: 1

And I still had to disable GlassTable::set_overwritten on top of your
patch.

Thanks!

-- 
Felipe Contreras
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: