From: Nathaniel Talbott Date: 2004-01-16T05:20:04+09:00 Subject: recvfrom(2) error on OS X 10.3.2 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 <:((><