Archive of RubyForge sup-talk mailing list
 help / color / mirror / Atom feed
From: rlane@club.cc.cmu.edu (Rich Lane)
Subject: [sup-talk] Sup and Ruby 1.9.1 - deadlock?
Date: Tue, 15 Sep 2009 16:32:42 -0400	[thread overview]
Message-ID: <1253043209-sup-8800@zyrg.net> (raw)
In-Reply-To: <1253030868-sup-8556@mithink>

Excerpts from Michael Hamann's message of Tue Sep 15 12:20:59 -0400 2009:
> Hi,
> 
> as Arch Linux has decided to put Ruby 1.9.1 into the extra repository I've got
> Ruby 1.8 replaced by 1.9.1 today. I then tried reinstalling all dependencies of
> sup again with Ruby 1.9.1. I've also found a Ferret gem for Ruby 1.9.1 at
> http://pennysmalls.com/2009/03/24/ferret-on-ruby-191/.
> 
> After that I tried running sup and after seeing the main screen for a few
> moments sup crashed with the following error (I'm using the latest version from
> next, but with master it's the same):
> 
> ThreadError from thread: load threads for thread-index-mode
> deadlock; recursive locking
> <internal:prelude>:6:in `lock'
> <internal:prelude>:6:in `synchronize'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:757:in
> `regen_text'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:687:in
> `resize'
> /home/michitux/pub/software/sup/lib/sup/buffer.rb:87:in `resize'
> /home/michitux/pub/software/sup/lib/sup/buffer.rb:328:in `draw_screen'
> /home/michitux/pub/software/sup/lib/sup/buffer.rb:728:in `flash'
> /home/michitux/pub/software/sup/lib/sup/util.rb:520:in `method_missing'
> /home/michitux/pub/software/sup/lib/sup/hook.rb:87:in `rescue in run'
> /home/michitux/pub/software/sup/lib/sup/hook.rb:81:in `run'
> /home/michitux/pub/software/sup/lib/sup/util.rb:520:in `method_missing'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:714:in
> `size_widget_for_thread'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:226:in
> `block (2 levels) in update'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:226:in `map'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:226:in
> `block in update'
> <internal:prelude>:8:in `synchronize'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:223:in
> `update'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:637:in
> `load_n_threads'
> (eval):12:in `load_n_threads'
> /home/michitux/pub/software/sup/lib/sup/modes/thread-index-mode.rb:609:in
> `block in load_n_threads_background'
> /home/michitux/pub/software/sup/lib/sup.rb:77:in `block in reporting_thread
> 

We're calling the size widget hook while holding the thread-index-mode
lock, then the hook throws an exception that results in trying to
acquire the lock again. We shouldn't be calling arbitrary code with
locks held. Until we figure that change out we could just change the
mutex to be a monitor.

> I then tried running sup-dump, it worked without problems, the results looks
> correct (just a few changed lines that represent the changes of the last days).
> 
> I then installed xapian and tried reimporting my mails and all I've got after
> importing 46 mails of about 44000 is:
> 
> Scanning maildir:/home/michitux/mail...
> /home/michitux/pub/software/sup/lib/sup/message.rb:103:in `gsub': invalid byte
> sequence in US-ASCII (ArgumentError)
> from /home/michitux/pub/software/sup/lib/sup/message.rb:103:in `parse_header'
> from /home/michitux/pub/software/sup/lib/sup/message.rb:238:in
> `load_from_source!'
> from /home/michitux/pub/software/sup/lib/sup/message.rb:335:in
> `build_from_source'
> from /home/michitux/pub/software/sup/lib/sup/poll.rb:145:in `block in
> each_message_from'
> from /home/michitux/pub/software/sup/lib/sup/maildir.rb:160:in `block in each'
> from /home/michitux/pub/software/sup/lib/sup/maildir.rb:157:in `upto'
> from /home/michitux/pub/software/sup/lib/sup/maildir.rb:157:in `each'
> from /home/michitux/pub/software/sup/lib/sup/util.rb:560:in `__pass'
> from /home/michitux/pub/software/sup/lib/sup/util.rb:547:in `method_missing'
> from /home/michitux/pub/software/sup/lib/sup/poll.rb:139:in `each_message_from'
> from /home/michitux/pub/software/sup/lib/sup/util.rb:520:in `method_missing'
> from bin/sup-sync:146:in `block in <main>'
> from bin/sup-sync:141:in `each'
> from bin/sup-sync:141:in `<main>'

This is a 1.9 encoding issue. I imagine we have a number of these, even
outside of rmail.

> Running sup with xapian and ruby 1.9.1 works as long as there aren't any mails
> displayed, when I e.g. select a label that contains mails, sub crashes again
> with the same exception as with ferret.
> 
> Is there anything I'm missing, is sup just not ready for Ruby 1.9.1 or is there
> another issue?

I think William said he's been doing some 1.9 work recently. I wouldn't
say it's ready just yet.


  parent reply	other threads:[~2009-09-15 20:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-15 16:20 Michael Hamann
2009-09-15 17:53 ` Sean Escriva
2009-09-15 21:24   ` Dusan
2009-09-15 20:32 ` Rich Lane [this message]
2009-09-26 14:48   ` William Morgan

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=1253043209-sup-8800@zyrg.net \
    --to=rlane@club.cc.cmu.edu \
    /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