Usage after database close

David Bremner david at tethera.net
Sun Jun 28 15:11:31 PDT 2020


Floris Bruynooghe <flub at devork.be> writes:

>
> Ok, I forgot the "expected behaviour" part of the bug report ;) I think
> that this doesn't work is fine and I'm not surprised by and your
> description of fetching it first is very reasonable.  However I was
> expecting NOTMUCH_STATUS_XAPIAN_EXEPTION instead of bluntly getting
> terminated.  This is what the notmuch_database_close() docs say after
> all.

Sure, uncaught exceptions are never nice. 

>
> I had a little look and this seems to be caused by the
> message->doc.termlist_begin() call in
> _notmuch_message_ensure_metadata(),

I guess almost every Xapian API call will fail with the database closed.

> I didn't have xapian debug symbols and am not familiar with xapian to
> quickly have an idea of whether this case can be improved or not.
> (-dbg debian packages for notmuch and xapian would be very handy ;))
>

You need to add a seperate repo for the new style debug symbols in
Debian:
$ (git)-[master]-% apt policy libxapian30-dbgsym
libxapian30-dbgsym:
  Installed: 1.4.15-1
  Candidate: 1.4.15-1
  Version table:
 *** 1.4.15-1 500
        500 http://debug.mirrors.debian.org/debian-debug testing-debug/main amd64 Packages
        500 http://debug.mirrors.debian.org/debian-debug unstable-debug/main amd64 Packages
        100 /var/lib/dpkg/status

> But part of my question is, *should* this be improved?  Am I
> interpreting notmuch's intended API correctly?

Well, I agree you should get NOTMUCH_STATUS_XAPIAN_EXCEPTION back, or we
should change the docs to say "just don't do that".

d




More information about the notmuch mailing list