passenger 5.0.4 → 5.0.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.editorconfig +10 -0
- data/CHANGELOG +21 -0
- data/build/agents.rb +2 -2
- data/build/apache2.rb +6 -5
- data/build/common_library.rb +22 -7
- data/build/cxx_tests.rb +0 -3
- data/build/misc.rb +1 -1
- data/dev/parse_file_descriptor_log +119 -0
- data/doc/CloudLicensingConfiguration.html +387 -0
- data/doc/Design and Architecture.html +2430 -0
- data/doc/Packaging.html +488 -0
- data/doc/Security of user switching support.html +1833 -0
- data/doc/ServerOptimizationGuide.html +659 -0
- data/doc/ServerOptimizationGuide.txt.md +8 -0
- data/doc/Users guide Apache.html +9116 -0
- data/doc/Users guide Apache.idmap.txt +6 -2
- data/doc/Users guide Apache.txt +26 -7
- data/doc/Users guide Nginx.html +9025 -0
- data/doc/Users guide Nginx.idmap.txt +7 -3
- data/doc/Users guide Nginx.txt +29 -6
- data/doc/Users guide Standalone.html +3983 -0
- data/doc/Users guide.html +1748 -0
- data/doc/users_guide_snippets/installation.txt +4 -4
- data/ext/apache2/Configuration.cpp +16 -5
- data/ext/apache2/Configuration.hpp +4 -2
- data/ext/apache2/Hooks.cpp +44 -19
- data/ext/boost/libs/thread/src/pthread/once.cpp +2 -0
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +6 -0
- data/ext/common/AgentsStarter.h +3 -2
- data/ext/common/ApplicationPool2/DirectSpawner.h +14 -4
- data/ext/common/ApplicationPool2/DummySpawner.h +12 -7
- data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
- data/ext/common/ApplicationPool2/Process.h +2 -1
- data/ext/common/ApplicationPool2/Session.h +6 -6
- data/ext/common/ApplicationPool2/SmartSpawner.h +19 -4
- data/ext/common/ApplicationPool2/Socket.h +59 -27
- data/ext/common/ApplicationPool2/Spawner.h +2 -2
- data/ext/common/BackgroundEventLoop.cpp +6 -1
- data/ext/common/Constants.h +1 -1
- data/ext/common/EventedClient.h +1 -1
- data/ext/common/EventedServer.h +2 -2
- data/ext/common/FileDescriptor.h +25 -6
- data/ext/common/Logging.cpp +107 -52
- data/ext/common/Logging.h +146 -19
- data/ext/common/MessageClient.h +2 -2
- data/ext/common/MessageServer.h +3 -2
- data/ext/common/RandomGenerator.h +8 -7
- data/ext/common/SafeLibev.h +5 -1
- data/ext/common/ServerKit/AcceptLoadBalancer.h +9 -4
- data/ext/common/ServerKit/FdSinkChannel.h +5 -2
- data/ext/common/ServerKit/FdSourceChannel.h +5 -2
- data/ext/common/ServerKit/FileBufferedChannel.h +2 -0
- data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +7 -2
- data/ext/common/ServerKit/HttpServer.h +6 -0
- data/ext/common/ServerKit/Server.h +40 -3
- data/ext/common/StaticString.h +20 -0
- data/ext/common/UnionStation/Connection.h +3 -1
- data/ext/common/UnionStation/Core.h +6 -4
- data/ext/common/Utils.cpp +4 -3
- data/ext/common/Utils/DateParsing.h +19 -5
- data/ext/common/Utils/FastStringStream.h +183 -0
- data/ext/common/Utils/IOUtils.cpp +47 -28
- data/ext/common/Utils/IOUtils.h +56 -12
- data/ext/common/Utils/MessagePassing.h +3 -3
- data/ext/common/Utils/ProcessMetricsCollector.h +2 -2
- data/ext/common/Utils/ScopeGuard.h +16 -5
- data/ext/common/Utils/SpeedMeter.h +2 -2
- data/ext/common/Utils/StrIntUtils.cpp +6 -6
- data/ext/common/Utils/StrIntUtils.h +2 -1
- data/ext/common/agents/Base.cpp +56 -4
- data/ext/common/agents/Base.h +2 -1
- data/ext/common/agents/HelperAgent/AdminServer.h +122 -11
- data/ext/common/agents/HelperAgent/Main.cpp +16 -5
- data/ext/common/agents/HelperAgent/OptionParser.h +7 -1
- data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
- data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +10 -1
- data/ext/common/agents/HelperAgent/RequestHandler/Request.h +8 -0
- data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +4 -3
- data/ext/common/agents/LoggingAgent/AdminServer.h +57 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -3
- data/ext/common/agents/LoggingAgent/Main.cpp +11 -3
- data/ext/common/agents/Watchdog/AdminServer.h +53 -11
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +3 -3
- data/ext/common/agents/Watchdog/Main.cpp +13 -6
- data/ext/libeio/ecb.h +1 -1
- data/ext/libev/ev.c +13 -1
- data/ext/libev/ev.h +3 -0
- data/ext/nginx/Configuration.c +28 -6
- data/ext/nginx/Configuration.h +2 -1
- data/ext/nginx/ngx_http_passenger_module.c +5 -4
- data/ext/oxt/dynamic_thread_group.hpp +38 -5
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/common_library.rb +9 -5
- data/lib/phusion_passenger/config/reopen_logs_command.rb +2 -2
- data/lib/phusion_passenger/packaging.rb +23 -37
- data/passenger.gemspec +21 -21
- metadata +4 -453
- metadata.gz.asc +7 -7
- data/.gitignore +0 -68
- data/.travis.yml +0 -16
- data/Gemfile +0 -17
- data/Gemfile.lock +0 -39
- data/Vagrantfile +0 -54
- data/debian.template/README.Debian +0 -15
- data/debian.template/changelog +0 -316
- data/debian.template/compat +0 -1
- data/debian.template/control.erb +0 -91
- data/debian.template/copyright +0 -385
- data/debian.template/libapache2-mod-passenger.install +0 -3
- data/debian.template/libapache2-mod-passenger.postinst +0 -36
- data/debian.template/libapache2-mod-passenger.prerm +0 -15
- data/debian.template/locations.ini.erb +0 -14
- data/debian.template/passenger-dev.install.erb +0 -3
- data/debian.template/passenger-doc.install.erb +0 -2
- data/debian.template/passenger.conf +0 -6
- data/debian.template/passenger.docs +0 -4
- data/debian.template/passenger.install.erb +0 -14
- data/debian.template/passenger.load +0 -3
- data/debian.template/passenger.manpages +0 -3
- data/debian.template/patches/series +0 -0
- data/debian.template/rules.erb +0 -76
- data/debian.template/source/format +0 -1
- data/ext/common/EventedBufferedInput.h +0 -458
- data/packaging/rpm/LICENSE.txt +0 -19
- data/packaging/rpm/Makefile +0 -13
- data/packaging/rpm/README.md +0 -41
- data/packaging/rpm/Vagrantfile +0 -38
- data/packaging/rpm/Vagrantfile.centos +0 -30
- data/packaging/rpm/build +0 -170
- data/packaging/rpm/create_project +0 -41
- data/packaging/rpm/git_update +0 -88
- data/packaging/rpm/image/Dockerfile +0 -37
- data/packaging/rpm/image/Gemfile +0 -3
- data/packaging/rpm/image/Gemfile.lock +0 -12
- data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +0 -19
- data/packaging/rpm/image/amazon2014-i386.cfg +0 -96
- data/packaging/rpm/image/amazon2014-x86_64.cfg +0 -96
- data/packaging/rpm/image/site-defaults.cfg +0 -168
- data/packaging/rpm/internal/build_tasks.rb +0 -238
- data/packaging/rpm/internal/dummygpg +0 -11
- data/packaging/rpm/internal/exec_build +0 -42
- data/packaging/rpm/internal/get_distro_arch +0 -14
- data/packaging/rpm/internal/get_distro_id +0 -10
- data/packaging/rpm/internal/git_update +0 -27
- data/packaging/rpm/internal/inituidgid +0 -17
- data/packaging/rpm/internal/my_init +0 -344
- data/packaging/rpm/internal/python27 +0 -3
- data/packaging/rpm/internal/repo_update +0 -46
- data/packaging/rpm/internal/setuser +0 -26
- data/packaging/rpm/internal/tracking_helper +0 -40
- data/packaging/rpm/jenkins_release +0 -99
- data/packaging/rpm/lib/build_tasks_support.rb +0 -402
- data/packaging/rpm/lib/preprocessor.rb +0 -341
- data/packaging/rpm/nginx_spec/404.html +0 -119
- data/packaging/rpm/nginx_spec/50x.html +0 -119
- data/packaging/rpm/nginx_spec/index.html +0 -116
- data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +0 -13
- data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
- data/packaging/rpm/nginx_spec/nginx-upgrade +0 -13
- data/packaging/rpm/nginx_spec/nginx-upgrade.8 +0 -151
- data/packaging/rpm/nginx_spec/nginx.conf +0 -131
- data/packaging/rpm/nginx_spec/nginx.init +0 -144
- data/packaging/rpm/nginx_spec/nginx.logrotate +0 -13
- data/packaging/rpm/nginx_spec/nginx.service +0 -15
- data/packaging/rpm/nginx_spec/nginx.spec.template +0 -560
- data/packaging/rpm/nginx_spec/nginx.sysconfig +0 -4
- data/packaging/rpm/nginx_spec/passenger.conf +0 -9
- data/packaging/rpm/nginx_spec/poweredby.png +0 -0
- data/packaging/rpm/passenger_spec/apache-passenger.conf.in +0 -26
- data/packaging/rpm/passenger_spec/config.json +0 -30
- data/packaging/rpm/passenger_spec/passenger.logrotate +0 -7
- data/packaging/rpm/passenger_spec/passenger.spec.template +0 -478
- data/packaging/rpm/passenger_spec/passenger_dynamic_thread_group.patch +0 -16
- data/packaging/rpm/passenger_spec/passenger_tests_default_config_example.patch +0 -44
- data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -21
- data/packaging/rpm/repo_update +0 -114
- data/packaging/rpm/setup-system +0 -61
- data/packaging/rpm/shell +0 -10
- data/test/.rspec +0 -4
- data/test/config.json.example +0 -42
- data/test/config.json.rpm-automation +0 -15
- data/test/config.json.travis +0 -15
- data/test/config.json.vagrant +0 -30
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +0 -124
- data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -30
- data/test/cxx/ApplicationPool2/PoolTest.cpp +0 -2062
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +0 -130
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +0 -243
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +0 -823
- data/test/cxx/BufferedIOTest.cpp +0 -364
- data/test/cxx/CachedFileStatTest.cpp +0 -402
- data/test/cxx/CxxTestMain.cpp +0 -181
- data/test/cxx/DataStructures/LStringTest.cpp +0 -275
- data/test/cxx/DataStructures/StringKeyTableTest.cpp +0 -199
- data/test/cxx/DateParsingTest.cpp +0 -75
- data/test/cxx/DechunkerTest.cpp +0 -250
- data/test/cxx/EventedBufferedInputTest.cpp +0 -758
- data/test/cxx/EventedClientTest.cpp +0 -523
- data/test/cxx/FileChangeCheckerTest.cpp +0 -331
- data/test/cxx/FileDescriptorTest.cpp +0 -69
- data/test/cxx/FilterSupportTest.cpp +0 -433
- data/test/cxx/IOUtilsTest.cpp +0 -861
- data/test/cxx/MemoryKit/MbufTest.cpp +0 -213
- data/test/cxx/MessageIOTest.cpp +0 -360
- data/test/cxx/MessagePassingTest.cpp +0 -81
- data/test/cxx/MessageReadersWritersTest.cpp +0 -576
- data/test/cxx/MessageServerTest.cpp +0 -393
- data/test/cxx/ProcessMetricsCollectorTest.cpp +0 -123
- data/test/cxx/RequestHandlerTest.cpp +0 -1463
- data/test/cxx/ResponseCacheTest.cpp +0 -322
- data/test/cxx/ServerKit/ChannelTest.cpp +0 -1467
- data/test/cxx/ServerKit/CookieUtilsTest.cpp +0 -274
- data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +0 -992
- data/test/cxx/ServerKit/HeaderTableTest.cpp +0 -177
- data/test/cxx/ServerKit/HttpServerTest.cpp +0 -1580
- data/test/cxx/ServerKit/ServerTest.cpp +0 -408
- data/test/cxx/StaticStringTest.cpp +0 -220
- data/test/cxx/StringMapTest.cpp +0 -131
- data/test/cxx/SystemTimeTest.cpp +0 -37
- data/test/cxx/TemplateTest.cpp +0 -118
- data/test/cxx/TestSupport.cpp +0 -207
- data/test/cxx/TestSupport.h +0 -333
- data/test/cxx/UnionStationTest.cpp +0 -741
- data/test/cxx/Utils/StrIntUtilsTest.cpp +0 -39
- data/test/cxx/UtilsTest.cpp +0 -672
- data/test/cxx/VariantMapTest.cpp +0 -191
- data/test/gdbinit.example +0 -34
- data/test/integration_tests/apache2_tests.rb +0 -585
- data/test/integration_tests/downloaded_binaries_tests.rb +0 -185
- data/test/integration_tests/native_packaging_spec.rb +0 -368
- data/test/integration_tests/nginx_tests.rb +0 -402
- data/test/integration_tests/shared/example_webapp_tests.rb +0 -289
- data/test/integration_tests/source_packaging_test.rb +0 -201
- data/test/integration_tests/spec_helper.rb +0 -22
- data/test/integration_tests/standalone_tests.rb +0 -392
- data/test/node/line_reader_spec.js +0 -338
- data/test/node/spec_helper.js +0 -65
- data/test/oxt/backtrace_test.cpp +0 -88
- data/test/oxt/counter.hpp +0 -55
- data/test/oxt/dynamic_thread_group_test.cpp +0 -131
- data/test/oxt/oxt_test_main.cpp +0 -27
- data/test/oxt/spin_lock_test.cpp +0 -59
- data/test/oxt/syscall_interruption_test.cpp +0 -39
- data/test/ruby/debug_logging_spec.rb +0 -145
- data/test/ruby/message_channel_spec.rb +0 -196
- data/test/ruby/rack/loader_spec.rb +0 -42
- data/test/ruby/rack/preloader_spec.rb +0 -48
- data/test/ruby/rails3.0/loader_spec.rb +0 -26
- data/test/ruby/rails3.0/preloader_spec.rb +0 -32
- data/test/ruby/rails3.1/loader_spec.rb +0 -26
- data/test/ruby/rails3.1/preloader_spec.rb +0 -32
- data/test/ruby/rails3.2/loader_spec.rb +0 -26
- data/test/ruby/rails3.2/preloader_spec.rb +0 -32
- data/test/ruby/rails4.0/loader_spec.rb +0 -28
- data/test/ruby/rails4.0/preloader_spec.rb +0 -34
- data/test/ruby/rails4.1/loader_spec.rb +0 -28
- data/test/ruby/rails4.1/preloader_spec.rb +0 -34
- data/test/ruby/request_handler_spec.rb +0 -747
- data/test/ruby/shared/loader_sharedspec.rb +0 -247
- data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +0 -357
- data/test/ruby/shared/ruby_loader_sharedspec.rb +0 -55
- data/test/ruby/spec_helper.rb +0 -114
- data/test/ruby/standalone/runtime_installer_spec.rb +0 -402
- data/test/ruby/union_station_spec.rb +0 -288
- data/test/ruby/utils/file_system_watcher_spec.rb +0 -229
- data/test/ruby/utils/hosts_file_parser.rb +0 -258
- data/test/ruby/utils/tee_input_spec.rb +0 -235
- data/test/ruby/utils/unseekable_socket_spec.rb +0 -66
- data/test/ruby/utils_spec.rb +0 -41
- data/test/stub/apache2/httpd.conf.erb +0 -122
- data/test/stub/apache2/mime.types +0 -748
- data/test/stub/garbage1.dat +0 -0
- data/test/stub/garbage2.dat +0 -0
- data/test/stub/garbage3.dat +0 -0
- data/test/stub/http_request.yml +0 -23
- data/test/stub/index.html +0 -1
- data/test/stub/nginx/koi-utf +0 -109
- data/test/stub/nginx/koi-win +0 -103
- data/test/stub/nginx/mime.types +0 -70
- data/test/stub/nginx/nginx.conf.erb +0 -70
- data/test/stub/nginx/win-utf +0 -126
- data/test/stub/node/app.js +0 -133
- data/test/stub/node/public/.gitignore +0 -0
- data/test/stub/node/tmp/.gitignore +0 -0
- data/test/stub/rack/config.ru +0 -95
- data/test/stub/rack/library.rb +0 -16
- data/test/stub/rack/public/.gitignore +0 -0
- data/test/stub/rack/start.rb +0 -52
- data/test/stub/rack/tmp/.gitignore +0 -0
- data/test/stub/rails3.0/.gitignore +0 -4
- data/test/stub/rails3.0/Gemfile +0 -22
- data/test/stub/rails3.0/Gemfile.lock +0 -80
- data/test/stub/rails3.0/Rakefile +0 -10
- data/test/stub/rails3.0/app/controllers/application_controller.rb +0 -4
- data/test/stub/rails3.0/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.0/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.0/config.ru +0 -4
- data/test/stub/rails3.0/config/application.rb +0 -48
- data/test/stub/rails3.0/config/boot.rb +0 -13
- data/test/stub/rails3.0/config/database.yml +0 -22
- data/test/stub/rails3.0/config/environment.rb +0 -5
- data/test/stub/rails3.0/config/environments/development.rb +0 -19
- data/test/stub/rails3.0/config/environments/production.rb +0 -48
- data/test/stub/rails3.0/config/environments/test.rb +0 -32
- data/test/stub/rails3.0/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.0/config/initializers/inflections.rb +0 -10
- data/test/stub/rails3.0/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.0/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.0/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.0/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.0/config/locales/en.yml +0 -5
- data/test/stub/rails3.0/config/routes.rb +0 -58
- data/test/stub/rails3.0/db/seeds.rb +0 -7
- data/test/stub/rails3.0/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.0/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.0/log/.gitignore +0 -0
- data/test/stub/rails3.0/public/404.html +0 -26
- data/test/stub/rails3.0/public/422.html +0 -26
- data/test/stub/rails3.0/public/500.html +0 -26
- data/test/stub/rails3.0/public/favicon.ico +0 -0
- data/test/stub/rails3.0/public/index.html +0 -279
- data/test/stub/rails3.0/public/robots.txt +0 -5
- data/test/stub/rails3.0/public/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.0/script/rails +0 -9
- data/test/stub/rails3.0/test/performance/browsing_test.rb +0 -9
- data/test/stub/rails3.0/test/test_helper.rb +0 -13
- data/test/stub/rails3.0/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails3.1/.gitignore +0 -15
- data/test/stub/rails3.1/Gemfile +0 -37
- data/test/stub/rails3.1/Gemfile.lock +0 -115
- data/test/stub/rails3.1/README +0 -261
- data/test/stub/rails3.1/Rakefile +0 -7
- data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.1/app/assets/stylesheets/application.css +0 -7
- data/test/stub/rails3.1/app/controllers/application_controller.rb +0 -3
- data/test/stub/rails3.1/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.1/app/mailers/.gitkeep +0 -0
- data/test/stub/rails3.1/app/models/.gitkeep +0 -0
- data/test/stub/rails3.1/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.1/config.ru +0 -4
- data/test/stub/rails3.1/config/application.rb +0 -48
- data/test/stub/rails3.1/config/boot.rb +0 -6
- data/test/stub/rails3.1/config/database.yml +0 -25
- data/test/stub/rails3.1/config/environment.rb +0 -5
- data/test/stub/rails3.1/config/environments/development.rb +0 -30
- data/test/stub/rails3.1/config/environments/production.rb +0 -60
- data/test/stub/rails3.1/config/environments/test.rb +0 -39
- data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.1/config/initializers/inflections.rb +0 -10
- data/test/stub/rails3.1/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.1/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.1/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.1/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails3.1/config/locales/en.yml +0 -5
- data/test/stub/rails3.1/config/routes.rb +0 -58
- data/test/stub/rails3.1/db/seeds.rb +0 -7
- data/test/stub/rails3.1/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.1/lib/assets/.gitkeep +0 -0
- data/test/stub/rails3.1/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.1/log/.gitkeep +0 -0
- data/test/stub/rails3.1/public/404.html +0 -26
- data/test/stub/rails3.1/public/422.html +0 -26
- data/test/stub/rails3.1/public/500.html +0 -26
- data/test/stub/rails3.1/public/favicon.ico +0 -0
- data/test/stub/rails3.1/public/index.html +0 -241
- data/test/stub/rails3.1/public/robots.txt +0 -5
- data/test/stub/rails3.1/script/rails +0 -6
- data/test/stub/rails3.1/test/fixtures/.gitkeep +0 -0
- data/test/stub/rails3.1/test/functional/.gitkeep +0 -0
- data/test/stub/rails3.1/test/integration/.gitkeep +0 -0
- data/test/stub/rails3.1/test/performance/browsing_test.rb +0 -12
- data/test/stub/rails3.1/test/test_helper.rb +0 -13
- data/test/stub/rails3.1/test/unit/.gitkeep +0 -0
- data/test/stub/rails3.1/vendor/assets/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.1/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails3.2/.gitignore +0 -15
- data/test/stub/rails3.2/Gemfile +0 -39
- data/test/stub/rails3.2/Gemfile.lock +0 -113
- data/test/stub/rails3.2/Rakefile +0 -7
- data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.2/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails3.2/app/controllers/application_controller.rb +0 -3
- data/test/stub/rails3.2/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.2/app/mailers/.gitkeep +0 -0
- data/test/stub/rails3.2/app/models/.gitkeep +0 -0
- data/test/stub/rails3.2/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.2/config.ru +0 -4
- data/test/stub/rails3.2/config/application.rb +0 -62
- data/test/stub/rails3.2/config/boot.rb +0 -6
- data/test/stub/rails3.2/config/database.yml +0 -25
- data/test/stub/rails3.2/config/environment.rb +0 -5
- data/test/stub/rails3.2/config/environments/development.rb +0 -37
- data/test/stub/rails3.2/config/environments/production.rb +0 -67
- data/test/stub/rails3.2/config/environments/test.rb +0 -37
- data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.2/config/initializers/inflections.rb +0 -15
- data/test/stub/rails3.2/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.2/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.2/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.2/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails3.2/config/locales/en.yml +0 -5
- data/test/stub/rails3.2/config/routes.rb +0 -58
- data/test/stub/rails3.2/db/seeds.rb +0 -7
- data/test/stub/rails3.2/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.2/lib/assets/.gitkeep +0 -0
- data/test/stub/rails3.2/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.2/log/.gitkeep +0 -0
- data/test/stub/rails3.2/public/404.html +0 -26
- data/test/stub/rails3.2/public/422.html +0 -26
- data/test/stub/rails3.2/public/500.html +0 -25
- data/test/stub/rails3.2/public/favicon.ico +0 -0
- data/test/stub/rails3.2/public/index.html +0 -241
- data/test/stub/rails3.2/public/robots.txt +0 -5
- data/test/stub/rails3.2/script/rails +0 -6
- data/test/stub/rails3.2/test/fixtures/.gitkeep +0 -0
- data/test/stub/rails3.2/test/functional/.gitkeep +0 -0
- data/test/stub/rails3.2/test/integration/.gitkeep +0 -0
- data/test/stub/rails3.2/test/performance/browsing_test.rb +0 -12
- data/test/stub/rails3.2/test/test_helper.rb +0 -13
- data/test/stub/rails3.2/test/unit/.gitkeep +0 -0
- data/test/stub/rails3.2/vendor/assets/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.2/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails4.0/.gitignore +0 -16
- data/test/stub/rails4.0/Gemfile +0 -45
- data/test/stub/rails4.0/Gemfile.lock +0 -126
- data/test/stub/rails4.0/README.rdoc +0 -28
- data/test/stub/rails4.0/Rakefile +0 -6
- data/test/stub/rails4.0/app/assets/images/.keep +0 -0
- data/test/stub/rails4.0/app/assets/javascripts/application.js +0 -16
- data/test/stub/rails4.0/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails4.0/app/controllers/application_controller.rb +0 -5
- data/test/stub/rails4.0/app/controllers/concerns/.keep +0 -0
- data/test/stub/rails4.0/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails4.0/app/mailers/.keep +0 -0
- data/test/stub/rails4.0/app/models/.keep +0 -0
- data/test/stub/rails4.0/app/models/concerns/.keep +0 -0
- data/test/stub/rails4.0/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails4.0/bin/bundle +0 -3
- data/test/stub/rails4.0/bin/rails +0 -4
- data/test/stub/rails4.0/bin/rake +0 -4
- data/test/stub/rails4.0/config.ru +0 -4
- data/test/stub/rails4.0/config/application.rb +0 -23
- data/test/stub/rails4.0/config/boot.rb +0 -4
- data/test/stub/rails4.0/config/database.yml +0 -25
- data/test/stub/rails4.0/config/environment.rb +0 -5
- data/test/stub/rails4.0/config/environments/development.rb +0 -29
- data/test/stub/rails4.0/config/environments/production.rb +0 -80
- data/test/stub/rails4.0/config/environments/test.rb +0 -36
- data/test/stub/rails4.0/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails4.0/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/stub/rails4.0/config/initializers/inflections.rb +0 -16
- data/test/stub/rails4.0/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails4.0/config/initializers/passenger.rb +0 -2
- data/test/stub/rails4.0/config/initializers/secret_token.rb +0 -12
- data/test/stub/rails4.0/config/initializers/session_store.rb +0 -3
- data/test/stub/rails4.0/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails4.0/config/locales/en.yml +0 -23
- data/test/stub/rails4.0/config/routes.rb +0 -57
- data/test/stub/rails4.0/db/seeds.rb +0 -7
- data/test/stub/rails4.0/lib/assets/.keep +0 -0
- data/test/stub/rails4.0/lib/tasks/.keep +0 -0
- data/test/stub/rails4.0/log/.keep +0 -0
- data/test/stub/rails4.0/public/404.html +0 -58
- data/test/stub/rails4.0/public/422.html +0 -58
- data/test/stub/rails4.0/public/500.html +0 -57
- data/test/stub/rails4.0/public/favicon.ico +0 -0
- data/test/stub/rails4.0/public/robots.txt +0 -5
- data/test/stub/rails4.0/test/controllers/.keep +0 -0
- data/test/stub/rails4.0/test/fixtures/.keep +0 -0
- data/test/stub/rails4.0/test/helpers/.keep +0 -0
- data/test/stub/rails4.0/test/integration/.keep +0 -0
- data/test/stub/rails4.0/test/mailers/.keep +0 -0
- data/test/stub/rails4.0/test/models/.keep +0 -0
- data/test/stub/rails4.0/test/test_helper.rb +0 -15
- data/test/stub/rails4.0/vendor/assets/javascripts/.keep +0 -0
- data/test/stub/rails4.0/vendor/assets/stylesheets/.keep +0 -0
- data/test/stub/rails4.1/.gitignore +0 -16
- data/test/stub/rails4.1/Gemfile +0 -45
- data/test/stub/rails4.1/Gemfile.lock +0 -129
- data/test/stub/rails4.1/README.rdoc +0 -28
- data/test/stub/rails4.1/Rakefile +0 -6
- data/test/stub/rails4.1/app/assets/images/.keep +0 -0
- data/test/stub/rails4.1/app/assets/javascripts/application.js +0 -16
- data/test/stub/rails4.1/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails4.1/app/controllers/application_controller.rb +0 -5
- data/test/stub/rails4.1/app/controllers/concerns/.keep +0 -0
- data/test/stub/rails4.1/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails4.1/app/mailers/.keep +0 -0
- data/test/stub/rails4.1/app/models/.keep +0 -0
- data/test/stub/rails4.1/app/models/concerns/.keep +0 -0
- data/test/stub/rails4.1/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails4.1/bin/bundle +0 -3
- data/test/stub/rails4.1/bin/rails +0 -4
- data/test/stub/rails4.1/bin/rake +0 -4
- data/test/stub/rails4.1/config.ru +0 -4
- data/test/stub/rails4.1/config/application.rb +0 -23
- data/test/stub/rails4.1/config/boot.rb +0 -4
- data/test/stub/rails4.1/config/database.yml +0 -25
- data/test/stub/rails4.1/config/environment.rb +0 -5
- data/test/stub/rails4.1/config/environments/development.rb +0 -29
- data/test/stub/rails4.1/config/environments/production.rb +0 -80
- data/test/stub/rails4.1/config/environments/test.rb +0 -36
- data/test/stub/rails4.1/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails4.1/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/stub/rails4.1/config/initializers/inflections.rb +0 -16
- data/test/stub/rails4.1/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails4.1/config/initializers/passenger.rb +0 -5
- data/test/stub/rails4.1/config/initializers/secret_token.rb +0 -12
- data/test/stub/rails4.1/config/initializers/session_store.rb +0 -3
- data/test/stub/rails4.1/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails4.1/config/locales/en.yml +0 -23
- data/test/stub/rails4.1/config/routes.rb +0 -57
- data/test/stub/rails4.1/db/seeds.rb +0 -7
- data/test/stub/rails4.1/lib/assets/.keep +0 -0
- data/test/stub/rails4.1/lib/tasks/.keep +0 -0
- data/test/stub/rails4.1/log/.keep +0 -0
- data/test/stub/rails4.1/public/404.html +0 -58
- data/test/stub/rails4.1/public/422.html +0 -58
- data/test/stub/rails4.1/public/500.html +0 -57
- data/test/stub/rails4.1/public/favicon.ico +0 -0
- data/test/stub/rails4.1/public/robots.txt +0 -5
- data/test/stub/rails4.1/test/controllers/.keep +0 -0
- data/test/stub/rails4.1/test/fixtures/.keep +0 -0
- data/test/stub/rails4.1/test/helpers/.keep +0 -0
- data/test/stub/rails4.1/test/integration/.keep +0 -0
- data/test/stub/rails4.1/test/mailers/.keep +0 -0
- data/test/stub/rails4.1/test/models/.keep +0 -0
- data/test/stub/rails4.1/test/test_helper.rb +0 -15
- data/test/stub/rails4.1/vendor/assets/javascripts/.keep +0 -0
- data/test/stub/rails4.1/vendor/assets/stylesheets/.keep +0 -0
- data/test/stub/start_error.pl +0 -24
- data/test/stub/upload_data.txt +0 -494
- data/test/stub/wsgi/passenger_wsgi.py +0 -212
- data/test/stub/wsgi/public/.gitignore +0 -0
- data/test/stub/wsgi/tmp/.gitignore +0 -0
- data/test/support/allocate_memory.c +0 -14
- data/test/support/apache2_controller.rb +0 -258
- data/test/support/multipart.rb +0 -62
- data/test/support/nginx_controller.rb +0 -97
- data/test/support/placebo-preloader.rb +0 -88
- data/test/support/test_helper.rb +0 -455
- data/test/support/valgrind.h +0 -2539
- data/test/tut/tut.h +0 -1310
- data/test/tut/tut_reporter.h +0 -256
- data/test/valgrind-osx.supp +0 -7
@@ -157,11 +157,11 @@ ifdef::apache[]
|
|
157
157
|
sudo apt-get install libapache2-mod-passenger
|
158
158
|
--------------------------------------------------------------
|
159
159
|
+
|
160
|
-
3. Enable the Phusion Passenger Apache module and restart
|
160
|
+
3. Enable the Phusion Passenger Apache module and stop/start Apache (reload or restart is not enough when upgrading):
|
161
161
|
+
|
162
162
|
--------------------------------------------------------------
|
163
163
|
sudo a2enmod passenger
|
164
|
-
sudo
|
164
|
+
sudo apache2ctl stop; sudo apache2ctl start
|
165
165
|
--------------------------------------------------------------
|
166
166
|
endif::[]
|
167
167
|
ifdef::standalone[]
|
@@ -197,11 +197,11 @@ ifdef::apache[]
|
|
197
197
|
sudo apt-get install libapache2-mod-passenger-enterprise
|
198
198
|
--------------------------------------------------------------
|
199
199
|
+
|
200
|
-
4. Enable the Phusion Passenger Apache module and restart
|
200
|
+
4. Enable the Phusion Passenger Apache module and stop/start Apache (reload or restart is not enough when upgrading):
|
201
201
|
+
|
202
202
|
--------------------------------------------------------------
|
203
203
|
sudo a2enmod passenger
|
204
|
-
sudo
|
204
|
+
sudo apache2ctl stop; sudo apache2ctl start
|
205
205
|
--------------------------------------------------------------
|
206
206
|
endif::[]
|
207
207
|
ifdef::standalone[]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2010-
|
3
|
+
* Copyright (c) 2010-2015 Phusion
|
4
4
|
*
|
5
5
|
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
*
|
@@ -235,7 +235,8 @@ passenger_config_merge_dir(apr_pool_t *p, void *basev, void *addv) {
|
|
235
235
|
DEFINE_SERVER_STR_CONFIG_SETTER(cmd_passenger_root, root)
|
236
236
|
DEFINE_SERVER_STR_CONFIG_SETTER(cmd_passenger_default_ruby, defaultRuby)
|
237
237
|
DEFINE_SERVER_INT_CONFIG_SETTER(cmd_passenger_log_level, logLevel, unsigned int, 0)
|
238
|
-
DEFINE_SERVER_STR_CONFIG_SETTER(
|
238
|
+
DEFINE_SERVER_STR_CONFIG_SETTER(cmd_passenger_log_file, logFile)
|
239
|
+
DEFINE_SERVER_STR_CONFIG_SETTER(cmd_passenger_file_descriptor_log_file, fileDescriptorLogFile)
|
239
240
|
DEFINE_SERVER_INT_CONFIG_SETTER(cmd_passenger_max_pool_size, maxPoolSize, unsigned int, 1)
|
240
241
|
DEFINE_SERVER_INT_CONFIG_SETTER(cmd_passenger_pool_idle_time, poolIdleTime, unsigned int, 0)
|
241
242
|
DEFINE_SERVER_INT_CONFIG_SETTER(cmd_passenger_response_buffer_high_watermark, responseBufferHighWatermark, unsigned int, 0)
|
@@ -396,11 +397,16 @@ const command_rec passenger_commands[] = {
|
|
396
397
|
NULL,
|
397
398
|
RSRC_CONF,
|
398
399
|
"Passenger log verbosity."),
|
399
|
-
AP_INIT_TAKE1("
|
400
|
-
(Take1Func)
|
400
|
+
AP_INIT_TAKE1("PassengerLogFile",
|
401
|
+
(Take1Func) cmd_passenger_log_file,
|
402
|
+
NULL,
|
403
|
+
RSRC_CONF,
|
404
|
+
"Passenger log file."),
|
405
|
+
AP_INIT_TAKE1("PassengerFileDescriptorLogFile",
|
406
|
+
(Take1Func) cmd_passenger_file_descriptor_log_file,
|
401
407
|
NULL,
|
402
408
|
RSRC_CONF,
|
403
|
-
"Passenger
|
409
|
+
"Passenger file descriptor log file."),
|
404
410
|
AP_INIT_TAKE1("PassengerMaxPoolSize",
|
405
411
|
(Take1Func) cmd_passenger_max_pool_size,
|
406
412
|
NULL,
|
@@ -578,6 +584,11 @@ const command_rec passenger_commands[] = {
|
|
578
584
|
"The number of threads that Phusion Passenger should spawn per application."),
|
579
585
|
|
580
586
|
// Backwards compatibility options.
|
587
|
+
AP_INIT_TAKE1("PassengerDebugLogFile",
|
588
|
+
(Take1Func) cmd_passenger_log_file,
|
589
|
+
NULL,
|
590
|
+
RSRC_CONF,
|
591
|
+
"Passenger log file."),
|
581
592
|
AP_INIT_TAKE1("RailsRuby",
|
582
593
|
(Take1Func) cmd_passenger_ruby,
|
583
594
|
NULL,
|
@@ -177,7 +177,8 @@ struct ServerConfig {
|
|
177
177
|
int logLevel;
|
178
178
|
|
179
179
|
/** A file to print debug messages to, or NULL to just use STDERR. */
|
180
|
-
const char *
|
180
|
+
const char *logFile;
|
181
|
+
const char *fileDescriptorLogFile;
|
181
182
|
|
182
183
|
/** The maximum number of simultaneously alive application
|
183
184
|
* instances. */
|
@@ -219,7 +220,8 @@ struct ServerConfig {
|
|
219
220
|
root = NULL;
|
220
221
|
defaultRuby = DEFAULT_RUBY;
|
221
222
|
logLevel = DEFAULT_LOG_LEVEL;
|
222
|
-
|
223
|
+
logFile = NULL;
|
224
|
+
fileDescriptorLogFile = NULL;
|
223
225
|
maxPoolSize = DEFAULT_MAX_POOL_SIZE;
|
224
226
|
poolIdleTime = DEFAULT_POOL_IDLE_TIME;
|
225
227
|
responseBufferHighWatermark = DEFAULT_RESPONSE_BUFFER_HIGH_WATERMARK;
|
data/ext/apache2/Hooks.cpp
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2010-
|
3
|
+
* Copyright (c) 2010-2015 Phusion
|
4
4
|
*
|
5
5
|
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
*
|
@@ -52,15 +52,16 @@
|
|
52
52
|
#include "Hooks.h"
|
53
53
|
#include "Bucket.h"
|
54
54
|
#include "Configuration.hpp"
|
55
|
-
#include "Utils.h"
|
56
|
-
#include "Utils/IOUtils.h"
|
57
|
-
#include "Utils/Timer.h"
|
58
|
-
#include "Utils/HttpConstants.h"
|
59
|
-
#include "Utils/modp_b64.h"
|
60
|
-
#include "Logging.h"
|
61
|
-
#include "AgentsStarter.h"
|
62
55
|
#include "DirectoryMapper.h"
|
63
|
-
#include
|
56
|
+
#include <Utils.h>
|
57
|
+
#include <Utils/IOUtils.h>
|
58
|
+
#include <Utils/StrIntUtils.h>
|
59
|
+
#include <Utils/Timer.h>
|
60
|
+
#include <Utils/HttpConstants.h>
|
61
|
+
#include <Utils/modp_b64.h>
|
62
|
+
#include <Logging.h>
|
63
|
+
#include <AgentsStarter.h>
|
64
|
+
#include <Constants.h>
|
64
65
|
|
65
66
|
/* The Apache/APR headers *must* come after the Boost headers, otherwise
|
66
67
|
* compilation will fail on OpenBSD.
|
@@ -245,7 +246,7 @@ private:
|
|
245
246
|
FileDescriptor conn;
|
246
247
|
|
247
248
|
try {
|
248
|
-
conn
|
249
|
+
conn.assign(connectToServer(getServerAddress(), __FILE__, __LINE__), NULL, 0);
|
249
250
|
} catch (const SystemException &e) {
|
250
251
|
if (e.code() == EPIPE || e.code() == ECONNREFUSED || e.code() == ENOENT) {
|
251
252
|
UPDATE_TRACE_POINT();
|
@@ -259,7 +260,7 @@ private:
|
|
259
260
|
time_t deadline = time(NULL) + 5;
|
260
261
|
while (!connected && time(NULL) < deadline) {
|
261
262
|
try {
|
262
|
-
conn
|
263
|
+
conn.assign(connectToServer(getServerAddress(), __FILE__, __LINE__), NULL, 0);
|
263
264
|
connected = true;
|
264
265
|
} catch (const SystemException &e) {
|
265
266
|
if (e.code() == EPIPE || e.code() == ECONNREFUSED || e.code() == ENOENT) {
|
@@ -741,6 +742,27 @@ private:
|
|
741
742
|
return lookupInTable(r->subprocess_env, name);
|
742
743
|
}
|
743
744
|
|
745
|
+
bool connectionUpgradeFlagSet(const char *header) const {
|
746
|
+
size_t headerSize = strlen(header);
|
747
|
+
if (headerSize < 1024) {
|
748
|
+
char buffer[headerSize + 1];
|
749
|
+
return connectionUpgradeFlagSet(header, headerSize, buffer, headerSize + 1);
|
750
|
+
} else {
|
751
|
+
DynamicBuffer buffer(headerSize + 1);
|
752
|
+
return connectionUpgradeFlagSet(header, headerSize, buffer.data, headerSize + 1);
|
753
|
+
}
|
754
|
+
}
|
755
|
+
|
756
|
+
bool connectionUpgradeFlagSet(const char *header, size_t headerSize,
|
757
|
+
char *buffer, size_t bufsize) const
|
758
|
+
{
|
759
|
+
assert(bufsize > headerSize);
|
760
|
+
memcpy(buffer, header, headerSize);
|
761
|
+
convertLowerCase((unsigned char *) buffer, headerSize);
|
762
|
+
buffer[headerSize] = '\0';
|
763
|
+
return strstr(buffer, "upgrade");
|
764
|
+
}
|
765
|
+
|
744
766
|
void addHeader(string &headers, const StaticString &name, const char *value) {
|
745
767
|
if (value != NULL) {
|
746
768
|
headers.append(name.data(), name.size());
|
@@ -851,12 +873,10 @@ private:
|
|
851
873
|
}
|
852
874
|
}
|
853
875
|
|
854
|
-
if (connectionHeader
|
855
|
-
result.append("Connection:
|
876
|
+
if (connectionHeader != NULL && connectionUpgradeFlagSet(connectionHeader->val)) {
|
877
|
+
result.append("Connection: upgrade\r\n", sizeof("Connection: upgrade\r\n") - 1);
|
856
878
|
} else {
|
857
|
-
result.append("Connection: ", sizeof("Connection: ") - 1);
|
858
|
-
result.append(connectionHeader->val);
|
859
|
-
result.append("\r\n", 2);
|
879
|
+
result.append("Connection: close\r\n", sizeof("Connection: close\r\n") - 1);
|
860
880
|
}
|
861
881
|
|
862
882
|
if (transferEncodingHeader != NULL) {
|
@@ -1185,8 +1205,11 @@ public:
|
|
1185
1205
|
{
|
1186
1206
|
serverConfig.finalize();
|
1187
1207
|
Passenger::setLogLevel(serverConfig.logLevel);
|
1188
|
-
if (serverConfig.
|
1189
|
-
Passenger::setLogFile(serverConfig.
|
1208
|
+
if (serverConfig.logFile != NULL) {
|
1209
|
+
Passenger::setLogFile(serverConfig.logFile);
|
1210
|
+
}
|
1211
|
+
if (serverConfig.fileDescriptorLogFile != NULL) {
|
1212
|
+
Passenger::setFileDescriptorLogFile(serverConfig.fileDescriptorLogFile);
|
1190
1213
|
}
|
1191
1214
|
m_hasModRewrite = UNKNOWN;
|
1192
1215
|
m_hasModDir = UNKNOWN;
|
@@ -1215,7 +1238,9 @@ public:
|
|
1215
1238
|
.set ("server_software", webServerDesc)
|
1216
1239
|
.setBool("multi_app", true)
|
1217
1240
|
.setBool("load_shell_envvars", true)
|
1218
|
-
.set ("
|
1241
|
+
.set ("log_file", (serverConfig.logFile == NULL) ? "" : serverConfig.logFile)
|
1242
|
+
.set ("file_descriptor_log_file", (serverConfig.fileDescriptorLogFile == NULL)
|
1243
|
+
? "" : serverConfig.fileDescriptorLogFile)
|
1219
1244
|
.set ("data_buffer_dir", serverConfig.dataBufferDir)
|
1220
1245
|
.set ("instance_registry_dir", serverConfig.instanceRegistryDir)
|
1221
1246
|
.setBool("user_switching", serverConfig.userSwitching)
|
@@ -3,6 +3,8 @@
|
|
3
3
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
4
4
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
5
5
|
|
6
|
+
#define IN_ONCE_CPP
|
7
|
+
|
6
8
|
#include <boost/thread/detail/config.hpp>
|
7
9
|
#ifdef BOOST_THREAD_ONCE_ATOMIC
|
8
10
|
#include "./once_atomic.cpp"
|
@@ -4,6 +4,10 @@
|
|
4
4
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
5
5
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
6
|
|
7
|
+
// Our build system will compile once_atomic.o, but the symbols in this file are already included in once.o.
|
8
|
+
// This guard here prevents once_atomic.o from containing a duplicate of those symbols.
|
9
|
+
#ifdef IN_ONCE_CPP
|
10
|
+
|
7
11
|
//#define __STDC_CONSTANT_MACROS
|
8
12
|
#include <boost/thread/detail/config.hpp>
|
9
13
|
#include <boost/thread/once.hpp>
|
@@ -88,3 +92,5 @@ namespace boost
|
|
88
92
|
} // namespace thread_detail
|
89
93
|
|
90
94
|
} // namespace boost
|
95
|
+
|
96
|
+
#endif /* IN_ONCE_CPP */
|
data/ext/common/AgentsStarter.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2010-
|
3
|
+
* Copyright (c) 2010-2015 Phusion
|
4
4
|
*
|
5
5
|
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
*
|
@@ -326,7 +326,7 @@ public:
|
|
326
326
|
.setInt ("log_level", getLogLevel());
|
327
327
|
extraParams.addTo(params);
|
328
328
|
|
329
|
-
fds = createUnixSocketPair();
|
329
|
+
fds = createUnixSocketPair(__FILE__, __LINE__);
|
330
330
|
pid = syscalls::fork();
|
331
331
|
if (pid == 0) {
|
332
332
|
// Child
|
@@ -388,6 +388,7 @@ public:
|
|
388
388
|
|
389
389
|
ScopeGuard guard(boost::bind(&AgentsStarter::killProcessGroupAndWait, &pid, 0));
|
390
390
|
fds[1].close();
|
391
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(feedbackFd, "AgentsStarter: feedback FD");
|
391
392
|
|
392
393
|
|
393
394
|
/****** Send arguments to watchdog through the feedback channel ******/
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2015 Phusion
|
4
4
|
*
|
5
5
|
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
*
|
@@ -160,8 +160,8 @@ public:
|
|
160
160
|
shared_array<const char *> args;
|
161
161
|
SpawnPreparationInfo preparation = prepareSpawn(options);
|
162
162
|
vector<string> command = createCommand(options, preparation, args);
|
163
|
-
SocketPair adminSocket = createUnixSocketPair();
|
164
|
-
Pipe errorPipe = createPipe();
|
163
|
+
SocketPair adminSocket = createUnixSocketPair(__FILE__, __LINE__);
|
164
|
+
Pipe errorPipe = createPipe(__FILE__, __LINE__);
|
165
165
|
DebugDirPtr debugDir = boost::make_shared<DebugDir>(preparation.uid, preparation.gid);
|
166
166
|
pid_t pid;
|
167
167
|
|
@@ -199,6 +199,16 @@ public:
|
|
199
199
|
throw SystemException("Cannot fork a new process", e);
|
200
200
|
|
201
201
|
} else {
|
202
|
+
UPDATE_TRACE_POINT();
|
203
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(adminSocket.first,
|
204
|
+
"App " << pid << " (" << options.appRoot << ") adminSocket[0]");
|
205
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(adminSocket.second,
|
206
|
+
"App " << pid << " (" << options.appRoot << ") adminSocket[1]");
|
207
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(errorPipe.first,
|
208
|
+
"App " << pid << " (" << options.appRoot << ") errorPipe[0]");
|
209
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(errorPipe.second,
|
210
|
+
"App " << pid << " (" << options.appRoot << ") errorPipe[1]");
|
211
|
+
|
202
212
|
UPDATE_TRACE_POINT();
|
203
213
|
ScopeGuard guard(boost::bind(nonInterruptableKillAndWaitpid, pid));
|
204
214
|
P_DEBUG("Process forked for appRoot=" << options.appRoot << ": PID " << pid);
|
@@ -208,7 +218,7 @@ public:
|
|
208
218
|
NegotiationDetails details;
|
209
219
|
details.preparation = &preparation;
|
210
220
|
details.stderrCapturer =
|
211
|
-
make_shared<BackgroundIOCapturer>(
|
221
|
+
boost::make_shared<BackgroundIOCapturer>(
|
212
222
|
errorPipe.first,
|
213
223
|
pid,
|
214
224
|
// The cast works around a compilation problem in Clang.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2015 Phusion
|
4
4
|
*
|
5
5
|
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
*
|
@@ -54,17 +54,22 @@ public:
|
|
54
54
|
TRACE_POINT();
|
55
55
|
possiblyRaiseInternalError(options);
|
56
56
|
|
57
|
-
|
57
|
+
pid_t pid;
|
58
|
+
{
|
59
|
+
boost::lock_guard<boost::mutex> l(lock);
|
60
|
+
count++;
|
61
|
+
pid = count;
|
62
|
+
}
|
63
|
+
|
64
|
+
SocketPair adminSocket = createUnixSocketPair(__FILE__, __LINE__);
|
58
65
|
SocketList sockets;
|
59
|
-
sockets.add("main", "tcp://127.0.0.1:1234", "session", config->concurrency);
|
66
|
+
sockets.add(pid, "main", "tcp://127.0.0.1:1234", "session", config->concurrency);
|
60
67
|
syscalls::usleep(config->spawnTime);
|
61
68
|
|
62
|
-
boost::lock_guard<boost::mutex> l(lock);
|
63
|
-
count++;
|
64
69
|
SpawnObject object;
|
65
|
-
string gupid = "gupid-" + toString(
|
70
|
+
string gupid = "gupid-" + toString(pid);
|
66
71
|
object.process = boost::make_shared<Process>(
|
67
|
-
|
72
|
+
pid, gupid,
|
68
73
|
adminSocket.second, FileDescriptor(), sockets,
|
69
74
|
SystemTime::getUsec(), SystemTime::getUsec());
|
70
75
|
object.process->dummy = true;
|
@@ -198,7 +198,7 @@ void processAndLogNewSpawnException(SpawnException &e, const Options &options,
|
|
198
198
|
getSystemTempDir());
|
199
199
|
fd = mkstemp(filename);
|
200
200
|
#endif
|
201
|
-
FdGuard guard(fd, true);
|
201
|
+
FdGuard guard(fd, NULL, 0, true);
|
202
202
|
if (fd == -1) {
|
203
203
|
int e = errno;
|
204
204
|
throw SystemException("Cannot generate a temporary filename",
|
@@ -484,12 +484,13 @@ public:
|
|
484
484
|
|
485
485
|
P_TRACE(2, "Cleaning up process " << inspect());
|
486
486
|
if (!dummy) {
|
487
|
-
SocketList::
|
487
|
+
SocketList::iterator it, end = sockets.end();
|
488
488
|
for (it = sockets.begin(); it != end; it++) {
|
489
489
|
if (getSocketAddressType(it->address) == SAT_UNIX) {
|
490
490
|
string filename = parseUnixSocketAddress(it->address);
|
491
491
|
syscalls::unlink(filename.c_str());
|
492
492
|
}
|
493
|
+
it->closeAllConnections();
|
493
494
|
}
|
494
495
|
}
|
495
496
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2015 Phusion
|
4
4
|
*
|
5
5
|
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
*
|
@@ -72,9 +72,9 @@ private:
|
|
72
72
|
mutable boost::atomic<int> refcount;
|
73
73
|
bool closed;
|
74
74
|
|
75
|
-
void deinitiate(bool success, bool
|
75
|
+
void deinitiate(bool success, bool wantKeepAlive) {
|
76
76
|
connection.fail = !success;
|
77
|
-
connection.
|
77
|
+
connection.wantKeepAlive = wantKeepAlive;
|
78
78
|
socket->checkinConnection(connection);
|
79
79
|
connection.fd = -1;
|
80
80
|
}
|
@@ -150,7 +150,7 @@ public:
|
|
150
150
|
Connection connection = socket->checkoutConnection();
|
151
151
|
connection.fail = true;
|
152
152
|
if (connection.blocking && !blocking) {
|
153
|
-
FdGuard g2(connection.fd);
|
153
|
+
FdGuard g2(connection.fd, NULL, 0);
|
154
154
|
setNonBlocking(connection.fd);
|
155
155
|
g2.clear();
|
156
156
|
connection.blocking = false;
|
@@ -172,9 +172,9 @@ public:
|
|
172
172
|
/**
|
173
173
|
* This Session object becomes fully unsable after closing.
|
174
174
|
*/
|
175
|
-
void close(bool success, bool
|
175
|
+
void close(bool success, bool wantKeepAlive = false) {
|
176
176
|
if (OXT_LIKELY(initiated())) {
|
177
|
-
deinitiate(success,
|
177
|
+
deinitiate(success, wantKeepAlive);
|
178
178
|
}
|
179
179
|
if (OXT_LIKELY(!closed)) {
|
180
180
|
callOnClose();
|
@@ -212,8 +212,8 @@ private:
|
|
212
212
|
shared_array<const char *> args;
|
213
213
|
preparation = prepareSpawn(options);
|
214
214
|
vector<string> command = createRealPreloaderCommand(options, args);
|
215
|
-
SocketPair adminSocket = createUnixSocketPair();
|
216
|
-
Pipe errorPipe = createPipe();
|
215
|
+
SocketPair adminSocket = createUnixSocketPair(__FILE__, __LINE__);
|
216
|
+
Pipe errorPipe = createPipe(__FILE__, __LINE__);
|
217
217
|
DebugDirPtr debugDir = boost::make_shared<DebugDir>(preparation.uid, preparation.gid);
|
218
218
|
pid_t pid;
|
219
219
|
|
@@ -251,6 +251,17 @@ private:
|
|
251
251
|
throw SystemException("Cannot fork a new process", e);
|
252
252
|
|
253
253
|
} else {
|
254
|
+
UPDATE_TRACE_POINT();
|
255
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(adminSocket.first,
|
256
|
+
"Preloader " << pid << " (" << options.appRoot << ") adminSocket[0]");
|
257
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(adminSocket.second,
|
258
|
+
"Preloader " << pid << " (" << options.appRoot << ") adminSocket[1]");
|
259
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(errorPipe.first,
|
260
|
+
"Preloader " << pid << " (" << options.appRoot << ") errorPipe[0]");
|
261
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(errorPipe.second,
|
262
|
+
"Preloader " << pid << " (" << options.appRoot << ") errorPipe[1]");
|
263
|
+
|
264
|
+
UPDATE_TRACE_POINT();
|
254
265
|
ScopeGuard guard(boost::bind(nonInterruptableKillAndWaitpid, pid));
|
255
266
|
P_DEBUG("Preloader process forked for appRoot=" << options.appRoot << ": PID " << pid);
|
256
267
|
adminSocket.first.close();
|
@@ -261,7 +272,7 @@ private:
|
|
261
272
|
details.adminSocket = adminSocket.second;
|
262
273
|
details.io = BufferedIO(adminSocket.second);
|
263
274
|
details.stderrCapturer =
|
264
|
-
make_shared<BackgroundIOCapturer>(
|
275
|
+
boost::make_shared<BackgroundIOCapturer>(
|
265
276
|
errorPipe.first,
|
266
277
|
pid,
|
267
278
|
// The cast works around a compilation problem in Clang.
|
@@ -610,7 +621,7 @@ private:
|
|
610
621
|
TRACE_POINT();
|
611
622
|
FileDescriptor fd;
|
612
623
|
try {
|
613
|
-
fd
|
624
|
+
fd.assign(connectToServer(socketAddress, __FILE__, __LINE__), NULL, 0);
|
614
625
|
} catch (const SystemException &e) {
|
615
626
|
BackgroundIOCapturerPtr stderrCapturer;
|
616
627
|
throwPreloaderSpawnException("An error occurred while starting "
|
@@ -621,6 +632,8 @@ private:
|
|
621
632
|
options,
|
622
633
|
DebugDirPtr());
|
623
634
|
}
|
635
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(fd, "Preloader " << pid
|
636
|
+
<< " (" << options.appRoot << ") connection");
|
624
637
|
|
625
638
|
UPDATE_TRACE_POINT();
|
626
639
|
BufferedIO io(fd);
|
@@ -671,6 +684,8 @@ private:
|
|
671
684
|
}
|
672
685
|
|
673
686
|
SpawnResult result;
|
687
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(fd, "App " << spawnedPid
|
688
|
+
<< " (" << options.appRoot << ") adminSocket[1]");
|
674
689
|
result.pid = spawnedPid;
|
675
690
|
result.adminSocket = fd;
|
676
691
|
result.io = io;
|