[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

weird deadlock message

Roger Pack

7/18/2008 12:41:00 AM

So...I run an app with three threads running, it churns for awhile,
then..

/lib/logger.rb:88:in `flush': Thread(0x346fc): deadlock (fatal)
from ./lib/logger.rb:88:in `log'
from driver.rb:547:in `go'
from driver.rb:784:in `doAllPeersWithDelta'
from driver.rb:783:in `times'
from driver.rb:783:in `doAllPeersWithDelta'
from driver.rb:1004:in `startAllPeersAndWaitForCompletion'
from driver.rb:708:in `doSingleRunWithCurrentSettings'
from driver.rb:474:in `doMultiple'
from driver.rb:463:in `upto'


This is flush called on a file socket. deadlock flushing a file? Bug?
Thoughts?
=R
--
Posted via http://www.ruby-....

4 Answers

ara.t.howard

7/18/2008 3:10:00 AM

0


On Jul 17, 2008, at 6:40 PM, Roger Pack wrote:

>
> ./lib/logger.rb:88:in `flush': Thread(0x346fc): deadlock (fatal)
> from ./lib/logger.rb:88:in `log'
> from driver.rb:547:in `go'
> from driver.rb:784:in `doAllPeersWithDelta'
> from driver.rb:783:in `times'
> from driver.rb:783:in `doAllPeersWithDelta'
> from driver.rb:1004:in `startAllPeersAndWaitForCompletion'
> from driver.rb:708:in `doSingleRunWithCurrentSettings'
> from driver.rb:474:in `doMultiple'
> from driver.rb:463:in `upto'
>
>
> This is flush called on a file socket. deadlock flushing a file? Bug?
> Thoughts?


it's not a file flushing, it's logger class, check out the stacktrace
- probably you have a thread bug there - looks like soap btw,
sorry! ;-)



a @ http://codeforp...
--
we can deny everything, except that we have the possibility of being
better. simply reflect on that.
h.h. the 14th dalai lama




Roger Pack

7/18/2008 3:29:00 AM

0


> it's not a file flushing, it's logger class, check out the stacktrace
> - probably you have a thread bug there - looks like soap btw,
> sorry! ;-)

Thankfully it's not soap :) soap is dirty! lol.
Yeah it's my own logger class calling flush on a file descriptor. Any
thoughts? Ruby Bug?
-R
--
Posted via http://www.ruby-....

ara.t.howard

7/18/2008 3:48:00 AM

0


On Jul 17, 2008, at 9:28 PM, Roger Pack wrote:

> Thankfully it's not soap :) soap is dirty! lol.

i agree!


>
> Yeah it's my own logger class calling flush on a file descriptor. Any
> thoughts? Ruby Bug?

hrrrm - dunno. paste the code?

a @ http://codeforp...
--
we can deny everything, except that we have the possibility of being
better. simply reflect on that.
h.h. the 14th dalai lama




Roger Pack

7/18/2008 4:35:00 AM

0

>
> hrrrm - dunno. paste the code?
>
> a @ http://codeforp...


def log(message)
begin
newMessage = formatMessage(message)
print newMessage unless @@output_to_file_only_not_screen
if !@logFile or @logFile.closed?
print "ERROR LOGGING THIS!!!" << newMessage << "\n\n\n"
return
end
assert @logFile and !@logFile.closed?
@logFile.write(newMessage)
@logFile.flush # THIS LINE FAILS DEADLOCK. As a side note, I've
had it fail on win32 for me on this line with an EBADF, but the instance
in question is a deadlock in mac os x, using 1.8.6 or 1.8.7 SVN.
rescue Exception => detail # obviously this does not catch the
exception 'deadlock' :P
...
end
end

An over aggressive deadlock bug? A faulty fastthread?
It might be another of those cruddy OS X bugs. Knowing my luck. [1]
Note that in a similar but slightly different configuration it actually
has one thread 'freeze' when it is opening a file [like File.new 'abc',
'w'].
The fix thus far has been to avoid using threads, as I have never seen
it in a single threaded environment. Cross your fingers, anyway.

Thanks for your help :)
-R

[1] http://www.ruby-...to...
--
Posted via http://www.ruby-....