[#18121] [Ruby 1.8.7 - Bug #405] (Open) ssl.rb:31: [BUG] Bus Error — Anonymous <redmine@...>

Issue #405 has been reported by Anonymous.

14 messages 2008/08/04

[#18130] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Brian Candler <B.Candler@...>

> Seriously though... Array.first is a noun.

10 messages 2008/08/05

[#18319] NEW Command: absolute_path() -- — "C.E. Thornton" <admin@...>

Core,

14 messages 2008/08/16
[#18321] Re: NEW Command: absolute_path() -- — Yukihiro Matsumoto <matz@...> 2008/08/18

Hi,

[#18381] [Bug #496] DRb.start_service(nil) is very slow — Hongli Lai <redmine@...>

Bug #496: DRb.start_service(nil) is very slow

11 messages 2008/08/25

[ruby-core:18381] [Bug #496] DRb.start_service(nil) is very slow

From: Hongli Lai <redmine@...>
Date: 2008-08-25 12:40:14 UTC
List: ruby-core #18381
Bug #496: DRb.start_service(nil) is very slow
http://redmine.ruby-lang.org/issues/show/496

Author: Hongli Lai
Status: Open, Priority: Normal

On some systems - such as mine - DRB.start_service(nil) is very slow. This is caused by the fact that DRb.open_server calls TCPServer.open(nil, 0).addr[1]. On my system, this takes about 3 seconds, and during those 3 seconds there is 0% CPU usage.

I suspect it has got something to do with the fact that retrieving the port of a server socket that's bound to 0.0.0.0 is for some unknown reason very slow.

The problem can be fixed by replacing the following line in drb.rb

  uri = 'druby://:0' unless uri

with:

  uri = 'druby://localhost:0' unless uri

This does not violate DRb.start_service's contract, because a nil indicates that it will bind to the default local host name.

The following monkeypatch works around the issue:

  module DRb
    class << self
      alias orig_start_service start_service
    end
    
    def self.start_service(uri = nil, front = nil, config = nil)
      if uri.nil?
        orig_start_service("druby://localhost:0", front, config)
      else
        orig_start_service(uri, front, config)
      end
    end
  end


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next