David Bremner writes on January 18, 2016 13:25: > The most likely cause of such a crash looks to me like nm_thread is NULL > or corrupted when passed in to get_tags. It's used without checking as a > talloc context, and that call to talloc never returns. > Ok, I'll check some further. I am checking whether nm_thread is NULL though, the preceding code is as follows (astroid/src/modes/thread_index/thread_index.cc:258): ``` for (; notmuch_threads_valid (threads); notmuch_threads_move_to_next (threads)) { notmuch_thread_t * thread; thread = notmuch_threads_get (threads); if (thread == NULL) { log << error << "ti: error: could not get thread." << endl; throw database_error ("ti: could not get thread (is NULL)"); } /* test for revision discarded */ const char * ti = notmuch_thread_get_thread_id (thread); if (ti == NULL) { log << error << "ti: revision discarded, trying to reopen." << endl; reopen_tries++; refresh (all, current_thread + count, false); return; } NotmuchThread *t = new NotmuchThread (thread); // get_tags is inside here notmuch_thread_destroy (thread); ``` (note that there is a bit of code there trying to determine whether the db is still valid, or needs to be re-opened) - g