Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Added collusion handling for FCGI

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@134 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit 54dabd05e67ed4db1370757efe7610a783852976 1 parent fdc4d1b
@dhh dhh authored
Showing with 20 additions and 14 deletions.
  1. +1 −1  railties/environments/development.rb
  2. +19 −13 railties/lib/breakpoint.rb
View
2  railties/environments/development.rb
@@ -9,4 +9,4 @@
# tunnel when you want to connect from a different
# computer over the internet. See the documentation of
# Breakpoint.activate_drb for how to do that.
-Breakpoint.activate_drb('druby://localhost:42531', nil) if $0.include?("dispatch")
+Breakpoint.activate_drb('druby://l​ocalhost:42531', nil, !defined?(FastCGI)) if $0.include?("dispatch")
View
32 railties/lib/breakpoint.rb
@@ -359,11 +359,13 @@ def unregister_collision_handler
#
# Detailed information about running DRb through firewalls is
# available at http://www.rubygarden.org/ruby?DrbTutorial
- def activate_drb(uri = 'druby://localhost:42531',
- allowed_hosts = ['localhost', '127.0.0.1', '::1'])
+ def activate_drb(uri = nil, allowed_hosts = ['localhost', '127.0.0.1', '::1'],
+ ignore_collisions = false)
return false if @use_drb
+ uri ||= 'druby://localhost:42531'
+
if allowed_hosts then
acl = ["deny", "all"]
@@ -380,17 +382,21 @@ def activate_drb(uri = 'druby://localhost:42531',
begin
DRb.start_service(uri, @drb_service)
rescue Errno::EADDRINUSE
- # The port is already occupied by another
- # Breakpoint service. We will try to tell
- # the old service that we want its port.
- # It will then forward that request to the
- # user and retry.
- unless did_collision then
- DRbObject.new(nil, uri).collision
- did_collision = true
+ if ignore_collisions then
+ nil
+ else
+ # The port is already occupied by another
+ # Breakpoint service. We will try to tell
+ # the old service that we want its port.
+ # It will then forward that request to the
+ # user and retry.
+ unless did_collision then
+ DRbObject.new(nil, uri).collision
+ did_collision = true
+ end
+ sleep(10)
+ retry
end
- sleep(10)
- retry
end
return true
@@ -509,4 +515,4 @@ def assert(&block)
Binding.of_caller do |context|
Breakpoint.assert(context, &block)
end
-end
+end
Please sign in to comment.
Something went wrong with that request. Please try again.