I've seen some segmentation faults lately again and rechecked the python bindings and while I actually found and fixed some error handling issues I overlooked last time, I think I also found a bug in notmuch_database_close.
The problem can easily be reproduced with the following program: ~~~ snip ~~~ import os import time import notmuch db_path = os.path.expanduser('~/Maildir') os.fork() with notmuch.Database(db_path, mode=notmuch.Database.MODE.READ_WRITE) as db: time.sleep(5) ~~~ snap ~~~ The top of the resulting stack trace is ~~~ snip ~~~ #0 0x00007fa2b6ac8104 in Xapian::WritableDatabase::commit() () from /usr/lib/libxapian.so.22 #1 0x00007fa2b7839de8 in Xapian::WritableDatabase::flush (this=0x0) at /usr/include/xapian/database.h:579 #2 0x00007fa2b78367aa in notmuch_database_close (notmuch=0x121ea70) at lib/database.cc:722 #3 0x00007fa2b7836749 in notmuch_database_open (path= 0x7fa2b948ac94 "/home/teythoon/Maildir", mode=NOTMUCH_DATABASE_MODE_READ_WRITE) at lib/database.cc:705 ~~~ snap ~~~ Cheers, Justus