[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

the thread problem in ruby imap

Wen Lan

1/4/2009 1:46:00 PM

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!
--
Posted via http://www.ruby-....

4 Answers

Charles Oliver Nutter

1/4/2009 2:12:00 PM

0

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/...

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

Wen Lan

1/5/2009 2:27:00 AM

0

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/...
>
> 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?
--
Posted via http://www.ruby-....

Charles Oliver Nutter

1/5/2009 10:39:00 AM

0

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

Wen Lan

1/5/2009 10:55:00 AM

0

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.
--
Posted via http://www.ruby-....