Forum: Ruby the thread problem in ruby imap

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
71ff53c0eee5317ec404587e065e4e26?d=identicon&s=25 Wen L. (feeling3_4)
on 2009-01-04 14:46
hi, all

  my application is about ruby imap, it depends on daemons lib and runs
as a background job. when it fetches the mails from gmail, it will throw
the error below randomly:

2008-12-30 11:37:04 ERROR failed to process message 6@11: stopping only
thread
note: use sleep to stop forever
backtrace at Tue Dec 30 11:37:04 -0800 2008:
/usr/lib/ruby/1.8/monitor.rb:102:in `stop'
/usr/lib/ruby/1.8/monitor.rb:102:in `wait'
/usr/lib/ruby/1.8/net/imap.rb:954:in `get_tagged_response'
/usr/lib/ruby/1.8/net/imap.rb:1014:in `send_command'
/usr/lib/ruby/1.8/monitor.rb:238:in `synchronize'
/usr/lib/ruby/1.8/net/imap.rb:999:in `send_command'
/usr/lib/ruby/1.8/net/imap.rb:392:in `select'
/usr/lib/ruby/1.8/monitor.rb:238:in `synchronize'
/usr/lib/ruby/1.8/net/imap.rb:390:in `select'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:176:in
`load'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:176:in
`start_load'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:253:in
`start'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/controller.rb:69:in
`run'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:139:in `run'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in
`call'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in
`catch_exceptions'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:138:in `run'

the ruby version is 1.8.5.

any ideas? thank you!
Charles Oliver Nutter (Guest)
on 2009-01-04 15:13
(Received via mailing list)
Wen Lan wrote:
> hi, all
>
>   my application is about ruby imap, it depends on daemons lib and runs
> as a background job. when it fetches the mails from gmail, it will throw
> the error below randomly:

I've noticed some really odd threading behavior in net/imap too. I think
it needs a bit of a threading overhaul. We have at least one reported
bug in JRuby that seems to be related to bad use of mutexes:

http://jira.codehaus.org/browse/JRUBY-2950

This could be the same thing, but perhaps we're not detecting that it's
the only thread stopping (since we don't have as rigid control over
threads).

- Charlie
71ff53c0eee5317ec404587e065e4e26?d=identicon&s=25 Wen L. (feeling3_4)
on 2009-01-05 03:27
Charles Oliver Nutter wrote:
> Wen Lan wrote:
>> hi, all
>>
>>   my application is about ruby imap, it depends on daemons lib and runs
>> as a background job. when it fetches the mails from gmail, it will throw
>> the error below randomly:
>
> I've noticed some really odd threading behavior in net/imap too. I think
> it needs a bit of a threading overhaul. We have at least one reported
> bug in JRuby that seems to be related to bad use of mutexes:
>
> http://jira.codehaus.org/browse/JRUBY-2950
>
> This could be the same thing, but perhaps we're not detecting that it's
> the only thread stopping (since we don't have as rigid control over
> threads).
>
> - Charlie


Charlie, thank you for your reply!

the error is about ruby monitor implementation or imap? what do you
think?
Charles Oliver Nutter (Guest)
on 2009-01-05 11:39
(Received via mailing list)
Wen Lan wrote:
> Charlie, thank you for your reply!
>
> the error is about ruby monitor implementation or imap? what do you
> think?

Well, looking at imap makes my head hurt, so I'm going to say it's a
problem in imap. I'm fairly confident in both the JRuby and Ruby Mutex
implementations, since they're not particularly complicated. But I'm not
at all confident in the imap code.

- Charlie
71ff53c0eee5317ec404587e065e4e26?d=identicon&s=25 Wen L. (feeling3_4)
on 2009-01-05 11:54
Charles Oliver Nutter wrote:
> Wen Lan wrote:
>> Charlie, thank you for your reply!
>>
>> the error is about ruby monitor implementation or imap? what do you
>> think?
>
> Well, looking at imap makes my head hurt, so I'm going to say it's a
> problem in imap. I'm fairly confident in both the JRuby and Ruby Mutex
> implementations, since they're not particularly complicated. But I'm not
> at all confident in the imap code.
>
> - Charlie

Charlie, if you look at the imap implementation in ruby1.8 and ruby1.9,
you'll find that the code(imap.rb) between 2 versions are not so
different.but the treading and monitor between 2 versions change a lot.

i'm very familiar with the imap code, and i had added IDEL command to
ruby imap(ruby1.8) implementaton in my last project. so i think this
error is all about threading.
This topic is locked and can not be replied to.