From: Darrin Thompson Date: 2009-08-29T01:55:04+09:00 Subject: Re: DRb Mysterious Stops Michal Suchanek wrote: > That many dup acks are somewhat suspicious but by themselves they > should not cause a lockup. If there is network problem the connection > should break eventually. However, some dumps of the part of the > conversation that causes excessive packet duplication might be useful. > Can you replicate the packet duplication with something simple like > scp file transfer or the like? > I can replicate it with a tiny tiny drb pair of programs. On my SLES9 machine: # cat test.rb require 'drb' class Echo def ping(length) return 'a' * length end end echo = Echo.new DRb.start_service("druby://0.0.0.0:9000", echo) DRb.thread.join On my Windows machine: require 'drb' echo = DRb::DRbObject.new_with_uri("druby://172.31.192.159:9000") response = echo.ping(ARGV[0].to_i) puts response.length When the program succeeds it's prints the number given. When it fails, it hangs until I kill it. I'm finding that short values always succeed, like 1024. I get some successful and some failed when I provide 44230 as the arg. I have saved packet traces of a successful run at 1024 and a failed run at 1 Mb. The traces are a few K and 70+K respectively. I can provide them privately. > Are some of the earlier machines also 64bit? > Yes. > I am not sure how 32bit vs 64bit integers work with marshalling. It > should work but perhaps some testing to ensure it really works well > would be a good idea. > A lot of other 32/64 bit conversations with other machines are working fine, so I'm reluctant to go there. -- Darrin -- Posted via http://www.ruby-forum.com/.