N
Nathaniel Talbott
I'm working on a new DRb protocol, and intermittently get the following
error when running the client sample:
ntalbott@jacob:~/cvs/drbfire$ ruby -v -I lib sample/client.rb
ruby 1.9.0 (2004-01-15) [powerpc-darwin]
./lib/drb/drbfire.rb:213:in `recv': Invalid argument - recvfrom(2)
(Errno::EINVAL)
from ./lib/drb/drbfire.rb:213:in `recv_signal_id'
from ./lib/drb/drbfire.rb:58:in `initialize'
from ./lib/drb/drbfire.rb:108:in `new'
from ./lib/drb/drbfire.rb:108:in `open_server'
from /usr/local/lib/ruby/1.9/drb/drb.rb:728:in `open_server'
from /usr/local/lib/ruby/1.9/drb/drb.rb:726:in `each'
from /usr/local/lib/ruby/1.9/drb/drb.rb:726:in `open_server'
from /usr/local/lib/ruby/1.9/drb/drb.rb:1228:in `initialize'
from /usr/local/lib/ruby/1.9/drb/drb.rb:1491:in `new'
from /usr/local/lib/ruby/1.9/drb/drb.rb:1491:in `start_service'
from sample/client.rb:11
You can get the code to try yourself from:
http://rubyforge.org/scm/?group_id=160
Using ktrace I discovered this:
17370 ruby CALL
recvfrom(0x3,0x436530,0x4,0,0xbffe60e0,0xbffe64e8)
17370 ruby RET recvfrom -1 errno 35 Resource temporarily
unavailable
17370 ruby CALL select(0x4,0xbffe6010,0,0,0)
17370 ruby RET select 1
17370 ruby CALL
recvfrom(0x3,0x436530,0xffffffff,0,0xbffe60e0,0xbffe64e8)
17370 ruby RET recvfrom -1 errno 22 Invalid argument
On a successful run, the first call to recvfrom succeeds, so it appears
that the third argument to recvfrom is being trashed between calls for
some reason. I think this may be an OS X related problem, as I couldn't
duplicate the error on either of the other two platforms I tested on
(Debian Linux and Windows 2000). Any ideas?
Thanks,
Nathaniel
<(><
error when running the client sample:
ntalbott@jacob:~/cvs/drbfire$ ruby -v -I lib sample/client.rb
ruby 1.9.0 (2004-01-15) [powerpc-darwin]
./lib/drb/drbfire.rb:213:in `recv': Invalid argument - recvfrom(2)
(Errno::EINVAL)
from ./lib/drb/drbfire.rb:213:in `recv_signal_id'
from ./lib/drb/drbfire.rb:58:in `initialize'
from ./lib/drb/drbfire.rb:108:in `new'
from ./lib/drb/drbfire.rb:108:in `open_server'
from /usr/local/lib/ruby/1.9/drb/drb.rb:728:in `open_server'
from /usr/local/lib/ruby/1.9/drb/drb.rb:726:in `each'
from /usr/local/lib/ruby/1.9/drb/drb.rb:726:in `open_server'
from /usr/local/lib/ruby/1.9/drb/drb.rb:1228:in `initialize'
from /usr/local/lib/ruby/1.9/drb/drb.rb:1491:in `new'
from /usr/local/lib/ruby/1.9/drb/drb.rb:1491:in `start_service'
from sample/client.rb:11
You can get the code to try yourself from:
http://rubyforge.org/scm/?group_id=160
Using ktrace I discovered this:
17370 ruby CALL
recvfrom(0x3,0x436530,0x4,0,0xbffe60e0,0xbffe64e8)
17370 ruby RET recvfrom -1 errno 35 Resource temporarily
unavailable
17370 ruby CALL select(0x4,0xbffe6010,0,0,0)
17370 ruby RET select 1
17370 ruby CALL
recvfrom(0x3,0x436530,0xffffffff,0,0xbffe60e0,0xbffe64e8)
17370 ruby RET recvfrom -1 errno 22 Invalid argument
On a successful run, the first call to recvfrom succeeds, so it appears
that the third argument to recvfrom is being trashed between calls for
some reason. I think this may be an OS X related problem, as I couldn't
duplicate the error on either of the other two platforms I tested on
(Debian Linux and Windows 2000). Any ideas?
Thanks,
Nathaniel
<(><