From: "drbrain (Eric Hodel)" Date: 2013-11-27T14:50:40+09:00 Subject: [ruby-core:58628] [ruby-trunk - Bug #9163] Rinda::RingServer can't announce locally Issue #9163 has been updated by drbrain (Eric Hodel). Committed per http://twitter.com/m_seki/status/405573265139044352 ---------------------------------------- Bug #9163: Rinda::RingServer can't announce locally https://bugs.ruby-lang.org/issues/9163#change-43198 Author: drbrain (Eric Hodel) Status: Closed 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/