From 63942d89f8632250088f1e04eead307850c3de2c Mon Sep 17 00:00:00 2001 From: bughit Date: Mon, 26 Jun 2017 15:41:23 -0400 Subject: [PATCH 1/2] fix startup without RUBYOPT present --- lib/puma/launcher.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/puma/launcher.rb b/lib/puma/launcher.rb index ea1c301e26..865d2c84c6 100644 --- a/lib/puma/launcher.rb +++ b/lib/puma/launcher.rb @@ -168,7 +168,11 @@ def run env = Bundler::ORIGINAL_ENV # add -rbundler/setup so we load from Gemfile when restarting bundle = "-rbundler/setup" - env["RUBYOPT"] = [env["RUBYOPT"], bundle].join(" ") unless env["RUBYOPT"].include?(bundle) + if env["RUBYOPT"] + env["RUBYOPT"] = [env["RUBYOPT"], bundle].join(" ") unless env["RUBYOPT"].include?(bundle) + else + env["RUBYOPT"] = bundle + end env else ENV.to_h From 22b6f23c826bd33ba6e49e062c5cdf54defcb702 Mon Sep 17 00:00:00 2001 From: bughit Date: Wed, 5 Jul 2017 20:16:45 -0400 Subject: [PATCH 2/2] avoid mutating Bundler::ORIGINAL_ENV --- lib/puma/launcher.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/puma/launcher.rb b/lib/puma/launcher.rb index 865d2c84c6..58b51a3d5e 100644 --- a/lib/puma/launcher.rb +++ b/lib/puma/launcher.rb @@ -165,9 +165,11 @@ def phased_restart def run previous_env = if defined?(Bundler) - env = Bundler::ORIGINAL_ENV + env = Bundler::ORIGINAL_ENV.dup # add -rbundler/setup so we load from Gemfile when restarting bundle = "-rbundler/setup" + + # bundler init ORIGINAL_ENV from ENV before it sets RUBYOPT in ENV, so env["RUBYOPT"] can be nil if env["RUBYOPT"] env["RUBYOPT"] = [env["RUBYOPT"], bundle].join(" ") unless env["RUBYOPT"].include?(bundle) else