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
data/ext/common/Logging.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
|
*
|
@@ -46,6 +46,7 @@
|
|
46
46
|
#include <ctime>
|
47
47
|
#include <cerrno>
|
48
48
|
#include <csignal>
|
49
|
+
#include <Utils/FastStringStream.h>
|
49
50
|
|
50
51
|
|
51
52
|
namespace Passenger {
|
@@ -55,8 +56,6 @@ using namespace boost;
|
|
55
56
|
using namespace oxt;
|
56
57
|
|
57
58
|
|
58
|
-
/********** Debug logging facilities **********/
|
59
|
-
|
60
59
|
struct AssertionFailureInfo {
|
61
60
|
const char *filename;
|
62
61
|
const char *function; // May be NULL.
|
@@ -68,18 +67,83 @@ extern volatile sig_atomic_t _logLevel;
|
|
68
67
|
// If assert() or similar fails, we attempt to store its information here.
|
69
68
|
extern AssertionFailureInfo lastAssertionFailure;
|
70
69
|
|
70
|
+
/**
|
71
|
+
* Returns the current log level. This method is thread-safe.
|
72
|
+
*/
|
71
73
|
inline OXT_FORCE_INLINE int
|
72
74
|
getLogLevel() {
|
73
75
|
return (int) _logLevel;
|
74
76
|
}
|
75
77
|
|
78
|
+
/**
|
79
|
+
* Sets the log level. This method is thread-safe.
|
80
|
+
*/
|
76
81
|
void setLogLevel(int value);
|
77
|
-
|
82
|
+
|
83
|
+
/**
|
84
|
+
* Returns the general log file that we're using, or the empty string
|
85
|
+
* if we're not using a log file.
|
86
|
+
*
|
87
|
+
* This method is NOT thread-safe.
|
88
|
+
*/
|
78
89
|
string getLogFile();
|
79
|
-
|
80
|
-
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Sets the general log file. This method is thread-safe.
|
93
|
+
* Returns whether the new log file can be opened. If not,
|
94
|
+
* errcode (if non-NULL) is set to the relevant filesystem
|
95
|
+
* error code.
|
96
|
+
*/
|
97
|
+
bool setLogFile(const string &path, int *errcode = NULL);
|
98
|
+
|
99
|
+
/**
|
100
|
+
* Returns whether we're using a separate log file for logging file
|
101
|
+
* descriptor opening and closing.
|
102
|
+
*
|
103
|
+
* See `getFileDescriptorLogFile()` for thread-safety notes.
|
104
|
+
*/
|
105
|
+
bool hasFileDescriptorLogFile();
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Returns the file that we're using for logging file descriptor
|
109
|
+
* opening and closing, or the empty string if we're not using a
|
110
|
+
* separate log file.
|
111
|
+
*
|
112
|
+
* This method is only thread-safe if `setFileDescriptorLogFile()`
|
113
|
+
* was called before any threads were made, and at the same time
|
114
|
+
* `setFileDescriptorLogFile()` is never called again with a different
|
115
|
+
* argument. In other words, only reopening the same log file is
|
116
|
+
* thread-safe.
|
117
|
+
*/
|
118
|
+
string getFileDescriptorLogFile();
|
119
|
+
|
120
|
+
/**
|
121
|
+
* Returns the file descriptor of the log file that we're using for
|
122
|
+
* logging file descriptor opening and closing, or -1 if we're not using a
|
123
|
+
* separate log file.
|
124
|
+
*
|
125
|
+
* See `getFileDescriptorLogFile()` for thread-safety notes.
|
126
|
+
*/
|
127
|
+
int getFileDescriptorLogFileFd();
|
128
|
+
|
129
|
+
/**
|
130
|
+
* Sets the log file to use specifically for logging file descriptor
|
131
|
+
* opening and closing.
|
132
|
+
*
|
133
|
+
* This method is only thread-safe if you `path` equals what
|
134
|
+
* `getFileDescriptorLogFile()` returns. In other words, when
|
135
|
+
* you're reopening the log file.
|
136
|
+
*
|
137
|
+
* Returns whether the new log file can be opened. If not,
|
138
|
+
* errcode (if non-NULL) is set to the relevant filesystem
|
139
|
+
* error code.
|
140
|
+
*/
|
141
|
+
bool setFileDescriptorLogFile(const string &path, int *errcode = NULL);
|
142
|
+
|
143
|
+
void _prepareLogEntry(FastStringStream<> &sstream, const char *file, unsigned int line);
|
81
144
|
void _writeLogEntry(const char *str, unsigned int size);
|
82
|
-
const char *
|
145
|
+
void _writeFileDescriptorLogEntry(const char *str, unsigned int size);
|
146
|
+
const char *_strdupFastStringStream(const FastStringStream<> &stream);
|
83
147
|
|
84
148
|
|
85
149
|
enum PassengerLogLevel {
|
@@ -99,20 +163,20 @@ enum PassengerLogLevel {
|
|
99
163
|
#define P_LOG(level, file, line, expr) \
|
100
164
|
do { \
|
101
165
|
if (Passenger::getLogLevel() >= (level)) { \
|
102
|
-
|
103
|
-
Passenger::_prepareLogEntry(
|
104
|
-
|
105
|
-
Passenger::_writeLogEntry(
|
166
|
+
Passenger::FastStringStream<> _ostream; \
|
167
|
+
Passenger::_prepareLogEntry(_ostream, file, line); \
|
168
|
+
_ostream << expr << "\n"; \
|
169
|
+
Passenger::_writeLogEntry(_ostream.data(), _ostream.size()); \
|
106
170
|
} \
|
107
171
|
} while (false)
|
108
172
|
|
109
173
|
#define P_LOG_UNLIKELY(level, file, line, expr) \
|
110
174
|
do { \
|
111
175
|
if (OXT_UNLIKELY(Passenger::getLogLevel() >= (level))) { \
|
112
|
-
|
113
|
-
Passenger::_prepareLogEntry(
|
114
|
-
|
115
|
-
Passenger::_writeLogEntry(
|
176
|
+
Passenger::FastStringStream<> _ostream; \
|
177
|
+
Passenger::_prepareLogEntry(_ostream, file, line); \
|
178
|
+
_ostream << expr << "\n"; \
|
179
|
+
Passenger::_writeLogEntry(_ostream.data(), _ostream.size()); \
|
116
180
|
} \
|
117
181
|
} while (false)
|
118
182
|
|
@@ -166,6 +230,69 @@ enum PassengerLogLevel {
|
|
166
230
|
#define P_TRACE_WITH_POS(level, file, line, expr) do { /* nothing */ } while (false)
|
167
231
|
#endif
|
168
232
|
|
233
|
+
|
234
|
+
/**
|
235
|
+
* Log the fact that a file descriptor has been opened.
|
236
|
+
*/
|
237
|
+
#define P_LOG_FILE_DESCRIPTOR_OPEN(fd) \
|
238
|
+
P_LOG_FILE_DESCRIPTOR_OPEN3(fd, __FILE__, __LINE__)
|
239
|
+
#define P_LOG_FILE_DESCRIPTOR_OPEN2(fd, expr) \
|
240
|
+
P_LOG_FILE_DESCRIPTOR_OPEN4(fd, __FILE__, __LINE__, expr)
|
241
|
+
#define P_LOG_FILE_DESCRIPTOR_OPEN3(fd, file, line) \
|
242
|
+
do { \
|
243
|
+
if (Passenger::hasFileDescriptorLogFile() || Passenger::getLogLevel() >= Passenger::LVL_DEBUG) { \
|
244
|
+
Passenger::FastStringStream<> _ostream; \
|
245
|
+
Passenger::_prepareLogEntry(_ostream, file, line); \
|
246
|
+
_ostream << "File descriptor opened: " << fd << "\n"; \
|
247
|
+
if (hasFileDescriptorLogFile()) { \
|
248
|
+
Passenger::_writeFileDescriptorLogEntry(_ostream.data(), _ostream.size()); \
|
249
|
+
} else { \
|
250
|
+
Passenger::_writeLogEntry(_ostream.data(), _ostream.size()); \
|
251
|
+
} \
|
252
|
+
} \
|
253
|
+
} while (false)
|
254
|
+
#define P_LOG_FILE_DESCRIPTOR_OPEN4(fd, file, line, expr) \
|
255
|
+
do { \
|
256
|
+
P_LOG_FILE_DESCRIPTOR_OPEN3(fd, file, line); \
|
257
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(fd, expr); \
|
258
|
+
} while (false)
|
259
|
+
|
260
|
+
/**
|
261
|
+
* Log the purpose of a file descriptor that was recently logged with
|
262
|
+
* P_LOG_FILE_DESCRIPTOR_OPEN(). You should include information that
|
263
|
+
* allows a reader to find out what a file descriptor is for.
|
264
|
+
*/
|
265
|
+
#define P_LOG_FILE_DESCRIPTOR_PURPOSE(fd, expr) \
|
266
|
+
do { \
|
267
|
+
if (Passenger::hasFileDescriptorLogFile() || Passenger::getLogLevel() >= Passenger::LVL_DEBUG) { \
|
268
|
+
Passenger::FastStringStream<> _ostream; \
|
269
|
+
Passenger::_prepareLogEntry(_ostream, __FILE__, __LINE__); \
|
270
|
+
_ostream << "File descriptor purpose: " << fd << ": " << expr << "\n"; \
|
271
|
+
if (hasFileDescriptorLogFile()) { \
|
272
|
+
Passenger::_writeFileDescriptorLogEntry(_ostream.data(), _ostream.size()); \
|
273
|
+
} else { \
|
274
|
+
Passenger::_writeLogEntry(_ostream.data(), _ostream.size()); \
|
275
|
+
} \
|
276
|
+
} \
|
277
|
+
} while (false)
|
278
|
+
|
279
|
+
/**
|
280
|
+
* Log the fact that a file descriptor has been closed.
|
281
|
+
*/
|
282
|
+
#define P_LOG_FILE_DESCRIPTOR_CLOSE(fd) \
|
283
|
+
do { \
|
284
|
+
if (Passenger::hasFileDescriptorLogFile() || Passenger::getLogLevel() >= Passenger::LVL_DEBUG) { \
|
285
|
+
Passenger::FastStringStream<> _ostream; \
|
286
|
+
Passenger::_prepareLogEntry(_ostream, __FILE__, __LINE__); \
|
287
|
+
_ostream << "File descriptor closed: " << fd << "\n"; \
|
288
|
+
if (hasFileDescriptorLogFile()) { \
|
289
|
+
Passenger::_writeFileDescriptorLogEntry(_ostream.data(), _ostream.size()); \
|
290
|
+
} else { \
|
291
|
+
Passenger::_writeLogEntry(_ostream.data(), _ostream.size()); \
|
292
|
+
} \
|
293
|
+
} \
|
294
|
+
} while (false)
|
295
|
+
|
169
296
|
/**
|
170
297
|
* Print a message that was received from an application's stdout/stderr.
|
171
298
|
*
|
@@ -192,9 +319,9 @@ void setPrintAppOutputAsDebuggingMessages(bool enabled);
|
|
192
319
|
do { \
|
193
320
|
TRACE_POINT(); \
|
194
321
|
const char *_exprStr; \
|
195
|
-
|
322
|
+
Passenger::FastStringStream<> sstream; \
|
196
323
|
sstream << expr; \
|
197
|
-
_exprStr = Passenger::
|
324
|
+
_exprStr = Passenger::_strdupFastStringStream(sstream); \
|
198
325
|
Passenger::lastAssertionFailure.filename = __FILE__; \
|
199
326
|
Passenger::lastAssertionFailure.line = __LINE__; \
|
200
327
|
Passenger::lastAssertionFailure.function = __PRETTY_FUNCTION__; \
|
@@ -207,9 +334,9 @@ void setPrintAppOutputAsDebuggingMessages(bool enabled);
|
|
207
334
|
do { \
|
208
335
|
UPDATE_TRACE_POINT(); \
|
209
336
|
const char *_exprStr; \
|
210
|
-
|
337
|
+
Passenger::FastStringStream<> sstream; \
|
211
338
|
sstream << expr; \
|
212
|
-
_exprStr = Passenger::
|
339
|
+
_exprStr = Passenger::_strdupFastStringStream(sstream); \
|
213
340
|
Passenger::lastAssertionFailure.filename = __FILE__; \
|
214
341
|
Passenger::lastAssertionFailure.line = __LINE__; \
|
215
342
|
Passenger::lastAssertionFailure.function = __PRETTY_FUNCTION__; \
|
data/ext/common/MessageClient.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
|
*
|
@@ -135,7 +135,7 @@ public:
|
|
135
135
|
TRACE_POINT();
|
136
136
|
ScopeGuard g(boost::bind(&MessageClient::autoDisconnect, this));
|
137
137
|
|
138
|
-
fd
|
138
|
+
fd.assign(connectToServer(serverAddress.c_str(), __FILE__, __LINE__), NULL, 0);
|
139
139
|
|
140
140
|
vector<string> args;
|
141
141
|
if (!readArrayMessage(fd, args)) {
|
data/ext/common/MessageServer.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
|
*
|
@@ -578,7 +578,8 @@ public:
|
|
578
578
|
FileDescriptor fd;
|
579
579
|
|
580
580
|
UPDATE_TRACE_POINT();
|
581
|
-
fd
|
581
|
+
fd.assign(syscalls::accept(serverFd, (struct sockaddr *) &addr, &len),
|
582
|
+
__FILE__, __LINE__);
|
582
583
|
if (fd == -1) {
|
583
584
|
throw SystemException("Unable to accept a new client", errno);
|
584
585
|
}
|
@@ -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
|
*
|
@@ -31,14 +31,12 @@
|
|
31
31
|
#include <boost/shared_ptr.hpp>
|
32
32
|
#include <oxt/system_calls.hpp>
|
33
33
|
|
34
|
-
#include
|
35
|
-
#include
|
36
|
-
#include
|
34
|
+
#include <Logging.h>
|
35
|
+
#include <StaticString.h>
|
36
|
+
#include <Exceptions.h>
|
37
|
+
#include <Utils/StrIntUtils.h>
|
37
38
|
|
38
39
|
|
39
|
-
/**
|
40
|
-
* A random
|
41
|
-
*/
|
42
40
|
namespace Passenger {
|
43
41
|
|
44
42
|
using namespace std;
|
@@ -81,10 +79,13 @@ public:
|
|
81
79
|
throw FileSystemException("Cannot open /dev/urandom",
|
82
80
|
errno, "/dev/urandom");
|
83
81
|
}
|
82
|
+
P_LOG_FILE_DESCRIPTOR_OPEN4(fileno(handle), __FILE__, __LINE__,
|
83
|
+
"RandomGenerator");
|
84
84
|
}
|
85
85
|
|
86
86
|
void close() {
|
87
87
|
if (handle != NULL) {
|
88
|
+
P_LOG_FILE_DESCRIPTOR_CLOSE(fileno(handle));
|
88
89
|
syscalls::fclose(handle);
|
89
90
|
handle = NULL;
|
90
91
|
}
|
data/ext/common/SafeLibev.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
|
*
|
@@ -34,6 +34,7 @@
|
|
34
34
|
#include <boost/function.hpp>
|
35
35
|
#include <boost/bind.hpp>
|
36
36
|
#include <oxt/thread.hpp>
|
37
|
+
#include <Logging.h>
|
37
38
|
|
38
39
|
namespace Passenger {
|
39
40
|
|
@@ -144,6 +145,9 @@ public:
|
|
144
145
|
|
145
146
|
~SafeLibev() {
|
146
147
|
destroy();
|
148
|
+
P_LOG_FILE_DESCRIPTOR_CLOSE(ev_loop_get_pipe(loop, 0));
|
149
|
+
P_LOG_FILE_DESCRIPTOR_CLOSE(ev_loop_get_pipe(loop, 1));
|
150
|
+
P_LOG_FILE_DESCRIPTOR_CLOSE(ev_backend_fd(loop));
|
147
151
|
ev_loop_destroy(loop);
|
148
152
|
}
|
149
153
|
|
@@ -159,7 +159,7 @@ private:
|
|
159
159
|
|
160
160
|
for (i = 0; i < newClientCount; i++) {
|
161
161
|
ServerKit::Context *ctx = servers[nextServer]->getContext();
|
162
|
-
P_TRACE(2, "Feeding client to server thread " << nextServer <<
|
162
|
+
P_TRACE(2, "Feeding client to server thread " << (int) nextServer <<
|
163
163
|
": file descriptor " << newClients[i]);
|
164
164
|
ctx->libev->runLater(boost::bind(feedNewClient, servers[nextServer],
|
165
165
|
newClients[i]));
|
@@ -190,13 +190,14 @@ private:
|
|
190
190
|
accept4Available = false;
|
191
191
|
return acceptNonBlockingSocket(serverFd);
|
192
192
|
} else {
|
193
|
+
P_LOG_FILE_DESCRIPTOR_OPEN(fd);
|
193
194
|
return fd;
|
194
195
|
}
|
195
196
|
} else {
|
196
197
|
int fd = syscalls::accept(serverFd,
|
197
198
|
(struct sockaddr *) &u,
|
198
199
|
&addrlen);
|
199
|
-
FdGuard guard(fd);
|
200
|
+
FdGuard guard(fd, __FILE__, __LINE__);
|
200
201
|
if (fd == -1) {
|
201
202
|
return -1;
|
202
203
|
} else {
|
@@ -254,8 +255,10 @@ public:
|
|
254
255
|
int e = errno;
|
255
256
|
throw SystemException("Cannot create pipe", e);
|
256
257
|
}
|
257
|
-
FdGuard guard1(exitPipe[0]);
|
258
|
-
FdGuard guard2(exitPipe[1]);
|
258
|
+
FdGuard guard1(exitPipe[0], __FILE__, __LINE__);
|
259
|
+
FdGuard guard2(exitPipe[1], __FILE__, __LINE__);
|
260
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(exitPipe[0], "AcceptLoadBalancer: exitPipe[0]");
|
261
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(exitPipe[1], "AcceptLoadBalancer: exitPipe[1]");
|
259
262
|
setNonBlocking(exitPipe[0]);
|
260
263
|
setNonBlocking(exitPipe[1]);
|
261
264
|
guard1.clear();
|
@@ -266,6 +269,8 @@ public:
|
|
266
269
|
shutdown();
|
267
270
|
close(exitPipe[0]);
|
268
271
|
close(exitPipe[1]);
|
272
|
+
P_LOG_FILE_DESCRIPTOR_CLOSE(exitPipe[0]);
|
273
|
+
P_LOG_FILE_DESCRIPTOR_CLOSE(exitPipe[1]);
|
269
274
|
}
|
270
275
|
|
271
276
|
void listen(int fd) {
|
@@ -86,6 +86,7 @@ private:
|
|
86
86
|
|
87
87
|
void initialize() {
|
88
88
|
dataCallback = _onData;
|
89
|
+
watcher.active = false;
|
89
90
|
watcher.fd = -1;
|
90
91
|
watcher.data = this;
|
91
92
|
}
|
@@ -102,7 +103,7 @@ public:
|
|
102
103
|
}
|
103
104
|
|
104
105
|
~FdSinkChannel() {
|
105
|
-
if (ctx != NULL) {
|
106
|
+
if (ctx != NULL && ev_is_active(&watcher)) {
|
106
107
|
ev_io_stop(ctx->libev->getLoop(), &watcher);
|
107
108
|
}
|
108
109
|
}
|
@@ -119,7 +120,9 @@ public:
|
|
119
120
|
}
|
120
121
|
|
121
122
|
void deinitialize() {
|
122
|
-
|
123
|
+
if (ev_is_active(&watcher)) {
|
124
|
+
ev_io_stop(ctx->libev->getLoop(), &watcher);
|
125
|
+
}
|
123
126
|
watcher.fd = -1;
|
124
127
|
Channel::deinitialize();
|
125
128
|
}
|
@@ -134,6 +134,7 @@ private:
|
|
134
134
|
|
135
135
|
void initialize() {
|
136
136
|
burstReadCount = 1;
|
137
|
+
watcher.active = false;
|
137
138
|
watcher.fd = -1;
|
138
139
|
watcher.data = this;
|
139
140
|
}
|
@@ -152,7 +153,7 @@ public:
|
|
152
153
|
}
|
153
154
|
|
154
155
|
~FdSourceChannel() {
|
155
|
-
if (ctx != NULL) {
|
156
|
+
if (ctx != NULL && ev_is_active(&watcher)) {
|
156
157
|
ev_io_stop(ctx->libev->getLoop(), &watcher);
|
157
158
|
}
|
158
159
|
}
|
@@ -170,7 +171,9 @@ public:
|
|
170
171
|
|
171
172
|
void deinitialize() {
|
172
173
|
buffer = MemoryKit::mbuf();
|
173
|
-
|
174
|
+
if (ev_is_active(&watcher)) {
|
175
|
+
ev_io_stop(ctx->libev->getLoop(), &watcher);
|
176
|
+
}
|
174
177
|
watcher.fd = -1;
|
175
178
|
consumedCallback = NULL;
|
176
179
|
Channel::deinitialize();
|
@@ -344,6 +344,7 @@ private:
|
|
344
344
|
P_ASSERT_EQ(readRequest, 0);
|
345
345
|
P_ASSERT_EQ(writerRequest, 0);
|
346
346
|
if (fd != -1) {
|
347
|
+
P_LOG_FILE_DESCRIPTOR_CLOSE(fd);
|
347
348
|
eio_close(fd, 0, NULL, NULL);
|
348
349
|
}
|
349
350
|
}
|
@@ -951,6 +952,7 @@ private:
|
|
951
952
|
|
952
953
|
if (fd != -1) {
|
953
954
|
FBC_DEBUG("Writer: file created. Deleting file in the background");
|
955
|
+
P_LOG_FILE_DESCRIPTOR_OPEN4(fd, __FILE__, __LINE__, "FileBufferedChannel buffer file");
|
954
956
|
eio_unlink(fcContext->path.c_str(), 0, bufferFileUnlinked, fcContext);
|
955
957
|
inFileMode->fd = fd;
|
956
958
|
moveNextBufferToFile();
|