------ art_23503_13727455.1149335224798 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Are you sure your connections are being closed after each call to client.call(...)? You may be hitting a per-process limit on open descriptors. Are you running netstat while your process is running or after it ends with the EBADF error? If the latter, then try catching EBADF and put in a long sleep, then look at netstat on a different shell. Localhost connections don't usually need to spend much time in the TIME_WAIT state. On 6/2/06, Alex Young <alex / blackkettle.org> wrote: > > Hi all, > > I'm trying to benchmark a few HTTP server types on Windows (XP Home, > specifically - don't ask why), and I've hit a snag with this code: > > ------------------------------ > > require 'xmlrpc/server' > require 'xmlrpc/client' > require 'benchmark' > > class ServerObject < XMLRPC::Server > def initialize > super(8080) > @server.config[:AccessLog] ['', '']] > self.add_handler('benchmark.simple') do > test() > end > end > def test > 'test' > end > end > > test_obj erverObject.new > serving_thread hread.new{ test_obj.serve } > > client MLRPC::Client.new('127.0.0.1', '/', '8080') > > n 000 > Benchmark.bmbm(20) do |b| > b.report('Direct RPC') { for i in 1..n; > client.call('benchmark.simple'); end } > end > > ------------------------- > > The problem is that with n that high, I get an > > c:/ruby/lib/ruby/1.8/net/http.rb:562:in `initialize': Bad file > descriptor - connect(2) (Errno::EBADF) > from c:/ruby/lib/ruby/1.8/net/http.rb:562:in `connect' > ... > from c:/ruby/lib/ruby/1.8/xmlrpc/client.rb:535:in `do_rpc' > > error during the second round. Looking at netstat -a afterwards, I see > almost every local port in the range 1026-5000 in the TIME_WAIT state. > That's a suspiciously round number, and I suspect there's a > 'client_port_maxP00' setting somewhere. That's not what bothers me. > Why are these ports waiting, and how can I close them, or reduce their > timeout value? I'd rather not insert 30 second waits all over the place > if that's enough of a delay... > > Any tips? Moving to a different OS is not, unfortunately, an option, > although shifting up to XP Pro might be in a pinch. > > -- > Alex > > ------ art_23503_13727455.1149335224798--