weird deadlock message

R

Roger Pack

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
 
A

ara.t.howard

./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://codeforpeople.com/
 
R

Roger Pack

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
 
R

Roger Pack

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 [email protected]?
@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-forum.com/topic/153559
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top