notmuch 0.6: notmuch new dies with std::terminate
Some time after upgrading to notmuch 0.6, notmuch new suddenly started failing, with this backtrace: (this is on DragonFly BSD) Program terminated with signal 6, Aborted. #0 0x0008017bde18 in kill () from /usr/lib/libc.so.7 (gdb) bt #0 0x0008017bde18 in kill () from /usr/lib/libc.so.7 #1 0x00080183779d in raise () from /usr/lib/libc.so.7 #2 0x000801837195 in abort () from /usr/lib/libc.so.7 #3 0x00080150c9c1 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/gcc44/libstdc++.so.9 #4 0x000801511047 in __cxxabiv1::__terminate(void (*)()) () from /usr/lib/gcc44/libstdc++.so.9 #5 0x00080151107c in std::terminate() () from /usr/lib/gcc44/libstdc++.so.9 #6 0x000801510fe4 in __cxa_throw () from /usr/lib/gcc44/libstdc++.so.9 #7 0x000801adac99 in Xapian::Document::Internal::remove_term (this=value optimized out, tname=value optimized out) at api/omdocument.cc:404 #8 0x00080086d020 in _notmuch_message_remove_term (message=0x8007719d0, prefix_name=0x800871cc9 tag, value=0x800871be0 draft) at lib/message.cc:915 #9 0x00080086d239 in notmuch_message_remove_tag (message=0x8007719d0, tag=0x800871be0 draft) at lib/message.cc:974 #10 0x00080086d421 in notmuch_message_maildir_flags_to_tags (message=0x8007719d0) at lib/message.cc:1030 #11 0x0040976d in add_files_recursive (notmuch=0x8007a02f0, path=0x8008003a8 /home/greenrd/Mail/sent/cur, state=0x7800) at notmuch-new.c:459 #12 0x00409236 in add_files_recursive (notmuch=0x8007a02f0, path=0x8007f0650 /home/greenrd/Mail/sent, state=0x7800) at notmuch-new.c:330 #13 0x00409236 in add_files_recursive (notmuch=0x8007a02f0, path=0x8007f0378 /home/greenrd/Mail, state=0x7800) at notmuch-new.c:330 #14 0x00409cb7 in add_files (notmuch=0x8007a02f0, path=0x8007f0378 /home/greenrd/Mail, state=0x7800) at notmuch-new.c:625 #15 0x0040a61c in notmuch_new_command (ctx=0x8006c02e8, argc=0, argv=0x7988) at notmuch-new.c:866 #16 0x00407038 in main (argc=2, argv=0x7978) at notmuch.c:632 I'm not a C++ programmer, but what I notice that's odd about this is that the exception *should* be caught by a catch, but isn't being. Because I couldn't figure out what is going wrong here, I switched back to notmuch 0.5, which worked. This may have to do with some errors I saw from notmuch search about a temporary draft file created by emacs no longer existing. Or that may be unrelated - I have no idea. ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
[PATCH] Use POSIX sed invocation
Fixes broken build on DragonFly BSD Signed-off-by: Robin Green --- lib/Makefile.local |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/lib/Makefile.local b/lib/Makefile.local index fe42920..88d8deb 100644 --- a/lib/Makefile.local +++ b/lib/Makefile.local @@ -76,7 +76,7 @@ $(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym notmuch.sym: lib/notmuch.h printf "{\nglobal:\n" > notmuch.sym - sed -n 's/^\s*\(notmuch_[a-z_]*\)\s*(.*/\t\1;/p' $< >> notmuch.sym + sed -n 's/^[[:space:]]*\(notmuch_[a-z_]*\)[[:space:]]*(.*/'"`printf "\t"`"'\1;/p' $< >> notmuch.sym printf "local: *;\n};\n" >> notmuch.sym $(dir)/$(SONAME): $(dir)/$(LIBNAME) -- 1.7.4.1
[PATCH] Use POSIX sed invocation
Fixes broken build on DragonFly BSD Signed-off-by: Robin Green gree...@greenrd.org --- lib/Makefile.local |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/lib/Makefile.local b/lib/Makefile.local index fe42920..88d8deb 100644 --- a/lib/Makefile.local +++ b/lib/Makefile.local @@ -76,7 +76,7 @@ $(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym notmuch.sym: lib/notmuch.h printf {\nglobal:\n notmuch.sym - sed -n 's/^\s*\(notmuch_[a-z_]*\)\s*(.*/\t\1;/p' $ notmuch.sym + sed -n 's/^[[:space:]]*\(notmuch_[a-z_]*\)[[:space:]]*(.*/'`printf \t`'\1;/p' $ notmuch.sym printf local: *;\n};\n notmuch.sym $(dir)/$(SONAME): $(dir)/$(LIBNAME) -- 1.7.4.1 ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Preventing the user shooting themself in the foot
It's really dangerous to use the 'a' key in notmuch-mode in an inbox thread which has multiple unread replies! Yes, the other unread replies will still be tagged unread, but the user might not immediately be aware of them. It would be really useful to have an optional warning ("More unread messages in this thread, are you sure?") for this situation!
Preventing the user shooting themself in the foot
It's really dangerous to use the 'a' key in notmuch-mode in an inbox thread which has multiple unread replies! Yes, the other unread replies will still be tagged unread, but the user might not immediately be aware of them. It would be really useful to have an optional warning (More unread messages in this thread, are you sure?) for this situation! ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Drafts being tagged as inbox
On Tue, 28 Jun 2011 08:34:44 +0200, Pieter Praet wrote: > notmuch tag -inbox +draft -- folder:${where_your_drafts_reside} My notmuch help does not mention "folder:", and indeed folder:drafts as a search term is just treated as the words folder and drafts. Perhaps this is implemented in git head. However, when I try to compile git head on Dragonfly BSD, I get this error: CXX -O2 notmuch-shared notmuch-count.o: In function `notmuch_count_command': notmuch-count.c:(.text+0x63): undefined reference to `notmuch_database_open' notmuch-count.c:(.text+0x9d): undefined reference to `notmuch_query_create' notmuch-count.c:(.text+0xb1): undefined reference to `notmuch_query_count_messages' notmuch-count.c:(.text+0xc9): undefined reference to `notmuch_query_destroy' notmuch-count.c:(.text+0xd1): undefined reference to `notmuch_database_close' notmuch-dump.o: In function `notmuch_dump_command': notmuch-dump.c:(.text+0x33): undefined reference to `notmuch_database_open' notmuch-dump.c:(.text+0x4e): undefined reference to `notmuch_query_create' notmuch-dump.c:(.text+0x67): undefined reference to `notmuch_query_set_sort' notmuch-dump.c:(.text+0x81): undefined reference to `notmuch_query_search_messages' notmuch-dump.c:(.text+0x8c): undefined reference to `notmuch_messages_valid' notmuch-dump.c:(.text+0xa4): undefined reference to `notmuch_messages_get' notmuch-dump.c:(.text+0xaf): undefined reference to `notmuch_message_get_message_id' notmuch-dump.c:(.text+0xcb): undefined reference to `notmuch_message_get_tags' notmuch-dump.c:(.text+0xe5): undefined reference to `notmuch_tags_get' notmuch-dump.c:(.text+0xf9): undefined reference to `notmuch_tags_move_to_next' notmuch-dump.c:(.text+0x10a): undefined reference to `notmuch_tags_valid' notmuch-dump.c:(.text+0x14d): undefined reference to `notmuch_message_destroy' notmuch-dump.c:(.text+0x155): undefined reference to `notmuch_messages_move_to_next' notmuch-dump.c:(.text+0x15d): undefined reference to `notmuch_messages_valid' notmuch-dump.c:(.text+0x17a): undefined reference to `notmuch_query_destroy' notmuch-dump.c:(.text+0x182): undefined reference to `notmuch_database_close' notmuch-new.o: In function `_remove_directory': notmuch-new.c:(.text+0x585): undefined reference to `notmuch_database_get_directory' notmuch-new.c:(.text+0x592): undefined reference to `notmuch_directory_get_child_files' notmuch-new.c:(.text+0x5b8): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0x5c0): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0x5cc): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0x5f1): undefined reference to `notmuch_database_remove_message' notmuch-new.c:(.text+0x609): undefined reference to `notmuch_directory_get_child_directories' notmuch-new.c:(.text+0x616): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0x65c): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0x664): undefined reference to `notmuch_filenames_valid' notmuch-new.o: In function `add_files_recursive': notmuch-new.c:(.text+0x7d6): undefined reference to `notmuch_database_get_directory' notmuch-new.c:(.text+0x7e3): undefined reference to `notmuch_directory_get_mtime' notmuch-new.c:(.text+0xa24): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xa3f): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xa6b): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xa73): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xa7f): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xb08): undefined reference to `notmuch_filenames_destroy' notmuch-new.c:(.text+0xb16): undefined reference to `notmuch_filenames_destroy' notmuch-new.c:(.text+0xb2c): undefined reference to `notmuch_directory_destroy' notmuch-new.c:(.text+0xb64): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xb6c): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xb7c): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xb97): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xbc9): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xbf5): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xbfd): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xc14): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xc40): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xc48): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xc69): undefined reference to `notmuch_directory_set_mtime' notmuch-new.c:(.text+0xcf9): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xd05): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xdca): undefined reference to
Re: Drafts being tagged as inbox
On Tue, 28 Jun 2011 08:34:44 +0200, Pieter Praet pie...@praet.org wrote: notmuch tag -inbox +draft -- folder:${where_your_drafts_reside} My notmuch help does not mention folder:, and indeed folder:drafts as a search term is just treated as the words folder and drafts. Perhaps this is implemented in git head. However, when I try to compile git head on Dragonfly BSD, I get this error: CXX -O2 notmuch-shared notmuch-count.o: In function `notmuch_count_command': notmuch-count.c:(.text+0x63): undefined reference to `notmuch_database_open' notmuch-count.c:(.text+0x9d): undefined reference to `notmuch_query_create' notmuch-count.c:(.text+0xb1): undefined reference to `notmuch_query_count_messages' notmuch-count.c:(.text+0xc9): undefined reference to `notmuch_query_destroy' notmuch-count.c:(.text+0xd1): undefined reference to `notmuch_database_close' notmuch-dump.o: In function `notmuch_dump_command': notmuch-dump.c:(.text+0x33): undefined reference to `notmuch_database_open' notmuch-dump.c:(.text+0x4e): undefined reference to `notmuch_query_create' notmuch-dump.c:(.text+0x67): undefined reference to `notmuch_query_set_sort' notmuch-dump.c:(.text+0x81): undefined reference to `notmuch_query_search_messages' notmuch-dump.c:(.text+0x8c): undefined reference to `notmuch_messages_valid' notmuch-dump.c:(.text+0xa4): undefined reference to `notmuch_messages_get' notmuch-dump.c:(.text+0xaf): undefined reference to `notmuch_message_get_message_id' notmuch-dump.c:(.text+0xcb): undefined reference to `notmuch_message_get_tags' notmuch-dump.c:(.text+0xe5): undefined reference to `notmuch_tags_get' notmuch-dump.c:(.text+0xf9): undefined reference to `notmuch_tags_move_to_next' notmuch-dump.c:(.text+0x10a): undefined reference to `notmuch_tags_valid' notmuch-dump.c:(.text+0x14d): undefined reference to `notmuch_message_destroy' notmuch-dump.c:(.text+0x155): undefined reference to `notmuch_messages_move_to_next' notmuch-dump.c:(.text+0x15d): undefined reference to `notmuch_messages_valid' notmuch-dump.c:(.text+0x17a): undefined reference to `notmuch_query_destroy' notmuch-dump.c:(.text+0x182): undefined reference to `notmuch_database_close' notmuch-new.o: In function `_remove_directory': notmuch-new.c:(.text+0x585): undefined reference to `notmuch_database_get_directory' notmuch-new.c:(.text+0x592): undefined reference to `notmuch_directory_get_child_files' notmuch-new.c:(.text+0x5b8): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0x5c0): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0x5cc): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0x5f1): undefined reference to `notmuch_database_remove_message' notmuch-new.c:(.text+0x609): undefined reference to `notmuch_directory_get_child_directories' notmuch-new.c:(.text+0x616): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0x65c): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0x664): undefined reference to `notmuch_filenames_valid' notmuch-new.o: In function `add_files_recursive': notmuch-new.c:(.text+0x7d6): undefined reference to `notmuch_database_get_directory' notmuch-new.c:(.text+0x7e3): undefined reference to `notmuch_directory_get_mtime' notmuch-new.c:(.text+0xa24): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xa3f): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xa6b): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xa73): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xa7f): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xb08): undefined reference to `notmuch_filenames_destroy' notmuch-new.c:(.text+0xb16): undefined reference to `notmuch_filenames_destroy' notmuch-new.c:(.text+0xb2c): undefined reference to `notmuch_directory_destroy' notmuch-new.c:(.text+0xb64): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xb6c): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xb7c): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xb97): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xbc9): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xbf5): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xbfd): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xc14): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xc40): undefined reference to `notmuch_filenames_move_to_next' notmuch-new.c:(.text+0xc48): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xc69): undefined reference to `notmuch_directory_set_mtime' notmuch-new.c:(.text+0xcf9): undefined reference to `notmuch_filenames_valid' notmuch-new.c:(.text+0xd05): undefined reference to `notmuch_filenames_get' notmuch-new.c:(.text+0xdca): undefined reference to
Drafts being tagged as inbox
My drafts (created using emacs message mode) are being tagged as inbox. However, they are not tagged as drafts. This is because emacs message mode does not store drafts in Maildir format, so there are no Maildir flags (e.g. D for draft) to sync tags with. Now, I could simply store drafts somewhere else, but then I wouldn't be able to search them using notmuch. Is there another way to have drafts correctly tagged? Thanks, Robin Green
Drafts being tagged as inbox
My drafts (created using emacs message mode) are being tagged as inbox. However, they are not tagged as drafts. This is because emacs message mode does not store drafts in Maildir format, so there are no Maildir flags (e.g. D for draft) to sync tags with. Now, I could simply store drafts somewhere else, but then I wouldn't be able to search them using notmuch. Is there another way to have drafts correctly tagged? Thanks, Robin Green ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Race condition for '*' command
On Sat, 25 Jun 2011 16:57:50 -0700, Jameson Graef Rollins wrote: > On Sat, 25 Jun 2011 23:18:52 +0100, Robin Green > wrote: > > A race condition in the '*' command was noted when it was first > > proposed. It looks to me like it still exists - has anything been done > > about it? > > Hi, Robin. Can you explain what you mean by the "'*' command"? Sorry - forgot to say I'm talking about the notmuch emacs mode. In that mode '*' applies tags to all messages matching the current search query, which means that (here's the race condition) new results that have appeared since the last refresh will also be tagged. -- Robin
Race condition for '*' command
Hi, A race condition in the '*' command was noted when it was first proposed. It looks to me like it still exists - has anything been done about it? Right now what I am doing is killing fetchmail, then using the '*' command, then starting fetchmail again in daemon mode, which is a little inconvenient. You see, in my setup fetchmail calls procmail to deliver mails, and procmail calls "notmuch new" after delivering every mail. Thanks, Robin Green
Re: Race condition for '*' command
On Sat, 25 Jun 2011 16:57:50 -0700, Jameson Graef Rollins jroll...@finestructure.net wrote: On Sat, 25 Jun 2011 23:18:52 +0100, Robin Green gree...@greenrd.org wrote: A race condition in the '*' command was noted when it was first proposed. It looks to me like it still exists - has anything been done about it? Hi, Robin. Can you explain what you mean by the '*' command? Sorry - forgot to say I'm talking about the notmuch emacs mode. In that mode '*' applies tags to all messages matching the current search query, which means that (here's the race condition) new results that have appeared since the last refresh will also be tagged. -- Robin ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Race condition for '*' command
Hi, A race condition in the '*' command was noted when it was first proposed. It looks to me like it still exists - has anything been done about it? Right now what I am doing is killing fetchmail, then using the '*' command, then starting fetchmail again in daemon mode, which is a little inconvenient. You see, in my setup fetchmail calls procmail to deliver mails, and procmail calls notmuch new after delivering every mail. Thanks, Robin Green ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch