diff --git a/History.md b/History.md index 28570e64fd..33b7b53042 100644 --- a/History.md +++ b/History.md @@ -2,6 +2,7 @@ * Bugfixes * Resolve issue with threadpool waiting counter decrement when thread is killed * Constrain rake-compiler version to 0.9.4 to fix `ClassNotFound` exception when using MiniSSL with Java8. + * Fix recursive `prune_bundler` (#2319). ## 5.0.0 diff --git a/lib/puma/launcher.rb b/lib/puma/launcher.rb index 3ec065aa5e..03c3824711 100644 --- a/lib/puma/launcher.rb +++ b/lib/puma/launcher.rb @@ -288,6 +288,7 @@ def puma_wild_location end def prune_bundler + return if ENV['PUMA_BUNDLER_PRUNED'] return unless defined?(Bundler) require_rubygems_min_version!(Gem::Version.new("2.2"), "prune_bundler") unless puma_wild_location diff --git a/test/config/prune_bundler_with_multiple_workers.rb b/test/config/prune_bundler_with_multiple_workers.rb new file mode 100644 index 0000000000..a93043f9a3 --- /dev/null +++ b/test/config/prune_bundler_with_multiple_workers.rb @@ -0,0 +1,14 @@ +require 'bundler/setup' +Bundler.setup + +prune_bundler true + +workers 2 + +app do |env| + [200, {}, ["embedded app"]] +end + +lowlevel_error_handler do |err| + [200, {}, ["error page"]] +end diff --git a/test/test_integration_cluster.rb b/test/test_integration_cluster.rb index f409443c79..29fdbb968f 100644 --- a/test/test_integration_cluster.rb +++ b/test/test_integration_cluster.rb @@ -198,6 +198,30 @@ def test_nakayoshi assert output, "Friendly fork didn't run" end + def test_prune_bundler_with_multiple_workers + cli_server "", config: <