aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/debug_exceptions_test.rb
diff options
context:
space:
mode:
authorTawan Sierek <tawan.sierek@gmail.com>2016-01-11 11:12:32 +0100
committerTawan Sierek <tawan.sierek@gmail.com>2016-01-16 16:16:43 +0100
commit221b4aead579ebae28477e889a7ee68a6668b0fa (patch)
tree6832c99190d150c9b1bdb05794d59ecce3f9b89a /actionpack/test/dispatch/debug_exceptions_test.rb
parent39f383bad01e52c217c9007b5e9d3b239fe6a808 (diff)
downloadrails-221b4aead579ebae28477e889a7ee68a6668b0fa.tar.gz
rails-221b4aead579ebae28477e889a7ee68a6668b0fa.tar.bz2
rails-221b4aead579ebae28477e889a7ee68a6668b0fa.zip
Avoid multiple default paths to server.pid file
Fix bug (#22811) that occurs when rails server is started in daemon mode and optional path to the `server.pid` file is omitted. Store default path in a constant instead of evaluating it multiple time using `File.expand_path`. The bug in detail: The server startup procedure crashes, since it tries to open a file at `/tmp/pids/server.pid` instead of `<path to project>/tmp/pids/server.pid`. This bug was introduced in 51211a94bd when Rack was upgraded from version 1.x to 2.x. Since version 2.x, Rack does not memoize the options hash [1], and as a consequence `Rails::Server#default_options` will be evaluated multiple times. The hash returned by `Rails::Server#default_options` holds the default path to the `server.pid` file. The path is generated with the method `File.expand_path`. However, the return value of this method depends on the current working directory [2], which changes once `Process.daemon` is invoked by `Rack::Server#daemonize_app` and the process is detached from the current shell. Close #22811 [1]https://git.io/vzen2 [2]http://ruby-doc.org/core-2.1.5/File.html#method-c-expand_path
Diffstat (limited to 'actionpack/test/dispatch/debug_exceptions_test.rb')
0 files changed, 0 insertions, 0 deletions