Re: Python bindings and Xapian exceptions

Subject: Re: Python bindings and Xapian exceptions

Date: Thu, 04 Nov 2010 12:31:48 -0700

To: Sebastian Spaeth, notmuch

Cc:

From: Carl Worth


On Tue, 15 Jun 2010 11:03:55 +0200, "Sebastian Spaeth" <Sebastian@SSpaeth.de> wrote:
> >   A Xapian exception occurred finding message: The revision being read
> >   has been discarded - you should call Xapian::Database::reopen() and
> >   retry the operation.
> > It makes the Python bindings almost useless to me.
> 
> Not sure, if the python bindings should simply drop and reopen a
> database connection in that case? But I am not sure if libnotmuch.so
> still simply exits on such an error case.
> 
> The proper fix, and a reason why I am not immediately hacking around in
> the python bindings is that notmuch the library would actually return a
> proper error value rather than print to stderr and quit.

For this particular case, I think the correct thing is for the library
to simply do the reopen() itself.

That way we can pretend that Xapian doesn't make readers block on
writers.

But for exceptions in general, yes the notmuch library does need to be
fixed to allow the caller of functions to distinguish between things
like "no matches found" and "an exception occurred, so it's unknown if
any messages match the search". That's a general class of library
interface bugs that all need to be fixed.

-Carl

-- 
carl.d.worth@intel.com
part-000.sig (application/pgp-signature)

Thread: