From: Jon Dugan <jdugan@es.net>
To: sup talk <sup-talk@rubyforge.org>
Subject: [sup-talk] Multiple documents for a single docid in Xapian?
Date: Mon, 16 May 2011 12:30:50 -0500 [thread overview]
Message-ID: <1305566071-sup-6625@arrakis.es.net> (raw)
Recently I've gotten into a situation where sup is crashing. The traceback is
at the end. The first time I did a little digging, a git pull and finallly
gave up and rebuilt my index. It happened again this morning and I dug in a
bit more. (What follows is based on a pull from master as of a few minutes
ago.)
I added a bit of debugging at the point of the crash: (around line 555 of
index.rb)
def find_docid id
docids = term_docids(mkterm(:msgid,id))
#fail unless docids.size <= 1
warn "got #{docids.size} (expected 1 or less) for #{id}" unless docids.size <= 1
docids.first
end
Basically instead of failing I log a warning and move on. For some reason I
am seeing 2 entries in the index for that particular docid. Any idea how this
could happen? Is there a recommended way to fix this? My little warning hack
makes me nervous. I assume I can just delete one of them from the index but I
haven't spent much time understanding how the index is set up and I'm
concerned about unintended consequences...
Interestingly I get the warning 4 times:
[Mon May 16 12:14:26 -0500 2011] WARNING: got 2 (expected 1 or less) for 1305558622-sup-33@arrakis.es.net
[Mon May 16 12:14:26 -0500 2011] WARNING: got 2 (expected 1 or less) for 1305558622-sup-33@arrakis.es.net
[Mon May 16 12:14:29 -0500 2011] WARNING: got 2 (expected 1 or less) for 1305558622-sup-33@arrakis.es.net
[Mon May 16 12:14:29 -0500 2011] WARNING: got 2 (expected 1 or less) for 1305558622-sup-33@arrakis.es.net
I originally got this after an offline IMAP run when it was scanning for new
messages to add to the index. The message in question is actually in my
~/.sup/sent.mbox file and so it wasn't pulled from IMAP -- I'm guessing it
must have just checked the sent mbox file after it finished checking the
offline IMAP directories. I'm not really sure.
Any ideas?
Thanks,
Jon
--- RuntimeError from thread: poll after loading inbox
/Users/jdugan/projects/sup/mainline/lib/sup/index.rb:556:in `find_docid'
/Users/jdugan/projects/sup/mainline/lib/sup/index.rb:562:in `find_doc'
/Users/jdugan/projects/sup/mainline/lib/sup/index.rb:572:in `get_entry'
/Users/jdugan/projects/sup/mainline/lib/sup/index.rb:200:in `build_message'
/opt/local/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Users/jdugan/projects/sup/mainline/lib/sup/index.rb:581:in `synchronize'
/Users/jdugan/projects/sup/mainline/lib/sup/index.rb:200:in `build_message'
/Users/jdugan/projects/sup/mainline/lib/sup/util.rb:618:in `send'
/Users/jdugan/projects/sup/mainline/lib/sup/util.rb:618:in `method_missing'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:159:in `poll_from'
/Users/jdugan/projects/sup/mainline/lib/sup/maildir.rb:106:in `poll'
/Users/jdugan/projects/sup/mainline/lib/sup/util.rb:615:in `each_with_index'
/Users/jdugan/projects/sup/mainline/lib/sup/maildir.rb:105:in `each'
/Users/jdugan/projects/sup/mainline/lib/sup/maildir.rb:105:in `each_with_index'
/Users/jdugan/projects/sup/mainline/lib/sup/maildir.rb:105:in `poll'
/Users/jdugan/projects/sup/mainline/lib/sup/maildir.rb:90:in `each'
/Users/jdugan/projects/sup/mainline/lib/sup/maildir.rb:90:in `poll'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:155:in `poll_from'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:113:in `do_poll'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:103:in `each'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:103:in `do_poll'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:102:in `synchronize'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:102:in `do_poll'
/Users/jdugan/projects/sup/mainline/lib/sup/util.rb:618:in `send'
/Users/jdugan/projects/sup/mainline/lib/sup/util.rb:618:in `method_missing'
/Users/jdugan/projects/sup/mainline/lib/sup/modes/poll-mode.rb:15:in `poll'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:49:in `poll_with_sources'
/Users/jdugan/projects/sup/mainline/lib/sup/poll.rb:68:in `poll'
/Users/jdugan/projects/sup/mainline/lib/sup/util.rb:618:in `send'
/Users/jdugan/projects/sup/mainline/lib/sup/util.rb:618:in `method_missing'
/Users/jdugan/projects/sup/mainline/bin/sup:223
/Users/jdugan/projects/sup/mainline/lib/sup.rb:78:in `reporting_thread'
/Users/jdugan/projects/sup/mainline/lib/sup.rb:76:in `initialize'
/Users/jdugan/projects/sup/mainline/lib/sup.rb:76:in `new'
/Users/jdugan/projects/sup/mainline/lib/sup.rb:76:in `reporting_thread'
/Users/jdugan/projects/sup/mainline/bin/sup:223
/Users/jdugan/projects/sup/mainline/lib/sup/modes/thread-index-mode.rb:684:in `call'
/Users/jdugan/projects/sup/mainline/lib/sup/modes/thread-index-mode.rb:684:in `__unprotected_load_threads'
/Users/jdugan/projects/sup/mainline/lib/sup/modes/thread-index-mode.rb:625:in `call'
/Users/jdugan/projects/sup/mainline/lib/sup/modes/thread-index-mode.rb:625:in `load_n_threads_background'
/Users/jdugan/projects/sup/mainline/lib/sup.rb:78:in `reporting_thread'
/Users/jdugan/projects/sup/mainline/lib/sup.rb:76:in `initialize'
/Users/jdugan/projects/sup/mainline/lib/sup.rb:76:in `new'
/Users/jdugan/projects/sup/mainline/lib/sup.rb:76:in `reporting_thread'
/Users/jdugan/projects/sup/mainline/lib/sup/modes/thread-index-mode.rb:623:in `load_n_threads_background'
/Users/jdugan/projects/sup/mainline/lib/sup/modes/thread-index-mode.rb:694:in `__unprotected_load_threads'
(eval):12:in `load_threads'
/Users/jdugan/projects/sup/mainline/bin/sup:223
_______________________________________________
sup-talk mailing list
sup-talk@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-talk
reply other threads:[~2011-05-16 18:15 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1305566071-sup-6625@arrakis.es.net \
--to=jdugan@es.net \
--cc=sup-talk@rubyforge.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox