Weird deadlock message

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:inlog’
from driver.rb:547:in go' from driver.rb:784:indoAllPeersWithDelta’
from driver.rb:783:in times' from driver.rb:783:indoAllPeersWithDelta’
from driver.rb:1004:in startAllPeersAndWaitForCompletion' from driver.rb:708:indoSingleRunWithCurrentSettings’
from driver.rb:474:in doMultiple' from driver.rb:463:inupto’

This is flush called on a file socket. deadlock flushing a file? Bug?
Thoughts?
=R

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

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! :wink:

a @ http://codeforpeople.com/

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! :wink:

Thankfully it’s not soap :slight_smile: soap is dirty! lol.
Yeah it’s my own logger class calling flush on a file descriptor. Any
thoughts? Ruby Bug?
-R

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

Thankfully it’s not soap :slight_smile: 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://codeforpeople.com/

hrrrm - dunno. paste the code?

a @ http://codeforpeople.com/

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’ :stuck_out_tongue:

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 :slight_smile:
-R

[1] Help me debug my stack trace - Ruby - Ruby-Forum