Project

General

Profile

Actions

Bug #9163

closed

Rinda::RingServer can't announce locally

Added by drbrain (Eric Hodel) about 11 years ago. Updated about 11 years ago.

Status:
Closed
Target version:
[ruby-core:58626]

Description

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.


Files

Actions

Also available in: Atom PDF

Like0
Like0Like0