Feature #4243


[PATCH] DRb should not forefully close connections on DRb#stop_service

Added by zimbatm (zimba tm) over 11 years ago. Updated over 9 years ago.

Target version:


When DRb#stop_service is called, all connections get terminated by
calling Thread.kill on them. It means that all code that is invoked trough
DRb must be exception-safe. This poses the same kind of issues we have
with Kernel#timeout.

This patch changes the behavior or DRb to only kill the accepting
thread, so that no new connections are made. New queries are also
rejected. DRb#stop_service is synchronous and waits for all child-threads
to terminate.

Please note that this patch is quite old, so I may have forgotten some details
of it. It was posted on rubyforge at
The new version got imported into git and applies on top of ae3666b38fd723231c0bbc3c33f4603b6e0e0ef0 or svn r30363 (not sure about the patch format)

This patch can easily be back-ported to 1.8.x since drb.rb hasn't changed much.



Actions #1

Updated by usa (Usaku NAKAMURA) over 11 years ago

  • Status changed from Open to Assigned
  • Assignee set to seki (Masatoshi Seki)



Updated by nahi (Hiroshi Nakamura) almost 11 years ago

  • Target version changed from 1.9.2 to 1.9.3
Actions #3

Updated by mame (Yusuke Endoh) almost 11 years ago

  • Tracker changed from Bug to Feature

Updated by mame (Yusuke Endoh) almost 11 years ago

This ticket is a feature, not a bug. Moving to Feature tracker.
And the feature proposed introduces incompatibility. We have to
be careful about the ticket.

Yusuke Endoh

Updated by mame (Yusuke Endoh) almost 11 years ago

  • Target version changed from 1.9.3 to 2.0.0

Updated by ko1 (Koichi Sasada) over 9 years ago

  • Status changed from Assigned to Closed

I close this ticket. Seki-san said no such problem now.
Please re-open this ticket if the issue is not gone.


Also available in: Atom PDF