Subject: Re: [sup-talk] sup Xapian crash

From: Mark Alexander <[email-masked]>
Date: Wed, 02 Jan 2013 16:33:39 -0500

Excerpts from Jonathan Lassoff's message of Wed Jan 02 15:26:15 -0500 2013:
> I'm having a sad day with sup. I'm crashing with a Xapian error I'll
> have to dig into.

I've never attempted to debug these kinds of crashes (which I run into
once or twice a year).  Instead, I use sup-dump to save the state of
the index, rename .sup/xapian to .sup/xapian.bad, then use sup-sync
--restore to rebuild the index.

Even though sup is not maintained, I'm so addicted to it that I'm willing
to put up with this inconvenience once in a while.
_______________________________________________
sup-talk mailing list
[email-masked]
http://rubyforge.org/mailman/listinfo/sup-talk

---

From: Mark Alexander <[email-masked]>
Date: Thu, 03 Jan 2013 18:04:41 -0500

Excerpts from Jonathan Lassoff's message of Wed Jan 02 18:20:28 -0500 2013:
> Have you looked at Heliotrope / Turnisole yet?

I decided not to look at it when I heard it didn't support searches by date.
I do this kind of searching all the time in sup:

   from:somebody AND after:(1 week ago)

and really can't live without it.
_______________________________________________
sup-talk mailing list
[email-masked]
http://rubyforge.org/mailman/listinfo/sup-talk

---

From: Jim Cheetham <[email-masked]>
Date: Fri, 4 Jan 2013 22:49:58 +1300

>    from:somebody AND after:(1 week ago)

Mmm, I wondered why that wasn't working.

I have a heliotrope/turnsole 'working', but the index frequently
crashes and the rebuild is stupidly slow (<1message/sec)

I get the impression that development has stalled/stopped. I wouldn't
recommend heliotrope as an alternative to sup; the concept is
positive, but the current execution is lacking.

I guess I'll have to spend some time soon on rebuilding my sup
environment, which was broken by Ubuntu's upgrade of some underlying
libraries.

-jim

---

From: Jonathan Lassoff <[email-masked]>
Date: Wed, 2 Jan 2013 15:20:28 -0800

> --restore to rebuild the index.

I started digging, but got bored with reading about the Xapian APIs,
so I mostly did what you just did as well :P

However, I needed to perform a sup-sync first to create the index and
add the messages in, so when I restored from the dump, pretty much
everything was marked as unread.
Working in the console to declare inbox bankruptcy and inbox zero, and
just clearing it all out. Thank goodness I'm starring threads that I
need to follow up on! :p

> to put up with this inconvenience once in a while.

Yeah, I've been using sup for so long that I can't just let it go now.
I've got all these excellent hooks and I know the system well.

Have you looked at Heliotrope / Turnisole yet?
That totally seems like wmorgan's future mail architecture, and I've
been curious to migrate to it, but haven't been able to sink the time
into it just yet.

Cheers,
jof

---

From: Jonathan Lassoff <[email-masked]>
Date: Wed, 2 Jan 2013 12:26:15 -0800

The exception is this:

--- IOError from thread: poll after loading inbox
DatabaseCorruptError: Expected another key with the same term name but
found a different one
/usr/lib/ruby/1.8/sup/index.rb:293:in `_dangerous_allterms_begin'
/usr/lib/ruby/1.8/sup/index.rb:293:in `each_prefixed_term'
/usr/lib/ruby/1.8/sup/index.rb:306:in `each_source_info'
/usr/lib/ruby/1.8/sup/maildir.rb:98:in `each'
/usr/lib/ruby/1.8/sup/maildir.rb:98:in `to_a'
/usr/lib/ruby/1.8/sup/maildir.rb:98:in `poll'
/usr/lib/ruby/1.8/sup/util.rb:229:in `call'
/usr/lib/ruby/1.8/sup/util.rb:229:in `benchmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/1.8/sup/util.rb:229:in `benchmark'
/usr/lib/ruby/1.8/sup/maildir.rb:98:in `poll'
/usr/lib/ruby/1.8/sup/maildir.rb:90:in `each'
/usr/lib/ruby/1.8/sup/maildir.rb:90:in `poll'
/usr/lib/ruby/1.8/sup/poll.rb:155:in `poll_from'
/usr/lib/ruby/1.8/sup/poll.rb:113:in `do_poll'
/usr/lib/ruby/1.8/sup/poll.rb:103:in `each'
/usr/lib/ruby/1.8/sup/poll.rb:103:in `do_poll'
/usr/lib/ruby/1.8/sup/poll.rb:102:in `synchronize'
/usr/lib/ruby/1.8/sup/poll.rb:102:in `do_poll'
/usr/lib/ruby/1.8/sup/util.rb:572:in `send'
/usr/lib/ruby/1.8/sup/util.rb:572:in `method_missing'
/usr/lib/ruby/1.8/sup/modes/poll-mode.rb:15:in `poll'
/usr/lib/ruby/1.8/sup/poll.rb:49:in `poll_with_sources'
/usr/lib/ruby/1.8/sup/poll.rb:68:in `poll'
/usr/lib/ruby/1.8/sup/util.rb:572:in `send'
/usr/lib/ruby/1.8/sup/util.rb:572:in `method_missing'
/usr/bin/sup-mail:223
/usr/lib/ruby/1.8/sup.rb:79:in `reporting_thread'
/usr/lib/ruby/1.8/sup.rb:77:in `initialize'
/usr/lib/ruby/1.8/sup.rb:77:in `new'
/usr/lib/ruby/1.8/sup.rb:77:in `reporting_thread'
/usr/bin/sup-mail:223
/usr/lib/ruby/1.8/sup/modes/thread-index-mode.rb:699:in `call'
/usr/lib/ruby/1.8/sup/modes/thread-index-mode.rb:699:in
`__unprotected_load_threads'
/usr/lib/ruby/1.8/sup/modes/thread-index-mode.rb:640:in `call'
/usr/lib/ruby/1.8/sup/modes/thread-index-mode.rb:640:in
`load_n_threads_background'
/usr/lib/ruby/1.8/sup.rb:79:in `reporting_thread'
/usr/lib/ruby/1.8/sup.rb:77:in `initialize'
/usr/lib/ruby/1.8/sup.rb:77:in `new'
/usr/lib/ruby/1.8/sup.rb:77:in `reporting_thread'
/usr/lib/ruby/1.8/sup/modes/thread-index-mode.rb:638:in
`load_n_threads_background'
/usr/lib/ruby/1.8/sup/modes/thread-index-mode.rb:709:in
`__unprotected_load_threads'
(eval):12:in `load_threads'
/usr/bin/sup-mail:223

I can start sup, but it seems like it goes to add a new message from
pickup and crashes. Maybe something about the new message could be
causing this.

Anyone run into this before or have any ideas where I should start hacking away?

Cheers,
jof