From mboxrd@z Thu Jan 1 00:00:00 1970 From: rlane@club.cc.cmu.edu (Rich Lane) Date: Tue, 15 Sep 2009 16:32:42 -0400 Subject: [sup-talk] Sup and Ruby 1.9.1 - deadlock? In-Reply-To: <1253030868-sup-8556@mithink> References: <1253030868-sup-8556@mithink> Message-ID: <1253043209-sup-8800@zyrg.net> 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 > :6:in `lock' > :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' > :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
' > from bin/sup-sync:141:in `each' > from bin/sup-sync:141:in `
' 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.