From: "drbrain (Eric Hodel)" Date: 2013-11-27T14:37:41+09:00 Subject: [ruby-core:58626] [ruby-trunk - Bug #9163][Assigned] Rinda::RingServer can't announce locally Issue #9163 has been reported by drbrain (Eric Hodel). ---------------------------------------- Bug #9163: Rinda::RingServer can't announce locally https://bugs.ruby-lang.org/issues/9163 Author: drbrain (Eric Hodel) Status: Assigned Priority: Normal Assignee: seki (Masatoshi Seki) Category: lib Target version: current: 2.1.0 ruby -v: - Backport: 1.9.3: REQUIRED, 2.0.0: REQUIRED Rinda::RingServer#do_reply takes tuples of the form [:lookup_ring, DRbObject]. For remote processes looking for a ring server this works fine as the callback proc in the second slot of the tuple will be a DRbObject. When a process is looking for a ring server that is local it will never be found. DRb automatically converts a DRbObject to a local reference to reduce overhead, so the second slot of the tuple will be a Proc instance. A Proc instance does not match DRbObject. Changing the template to [:lookup_ring, nil] allows the ring server to respond to a local lookup request. This also prevents memory growth in the tuple space as matching arbitrary objects can be removed. -- http://bugs.ruby-lang.org/