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.

Files changed (550) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +10 -0
  5. data/CHANGELOG +21 -0
  6. data/build/agents.rb +2 -2
  7. data/build/apache2.rb +6 -5
  8. data/build/common_library.rb +22 -7
  9. data/build/cxx_tests.rb +0 -3
  10. data/build/misc.rb +1 -1
  11. data/dev/parse_file_descriptor_log +119 -0
  12. data/doc/CloudLicensingConfiguration.html +387 -0
  13. data/doc/Design and Architecture.html +2430 -0
  14. data/doc/Packaging.html +488 -0
  15. data/doc/Security of user switching support.html +1833 -0
  16. data/doc/ServerOptimizationGuide.html +659 -0
  17. data/doc/ServerOptimizationGuide.txt.md +8 -0
  18. data/doc/Users guide Apache.html +9116 -0
  19. data/doc/Users guide Apache.idmap.txt +6 -2
  20. data/doc/Users guide Apache.txt +26 -7
  21. data/doc/Users guide Nginx.html +9025 -0
  22. data/doc/Users guide Nginx.idmap.txt +7 -3
  23. data/doc/Users guide Nginx.txt +29 -6
  24. data/doc/Users guide Standalone.html +3983 -0
  25. data/doc/Users guide.html +1748 -0
  26. data/doc/users_guide_snippets/installation.txt +4 -4
  27. data/ext/apache2/Configuration.cpp +16 -5
  28. data/ext/apache2/Configuration.hpp +4 -2
  29. data/ext/apache2/Hooks.cpp +44 -19
  30. data/ext/boost/libs/thread/src/pthread/once.cpp +2 -0
  31. data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +6 -0
  32. data/ext/common/AgentsStarter.h +3 -2
  33. data/ext/common/ApplicationPool2/DirectSpawner.h +14 -4
  34. data/ext/common/ApplicationPool2/DummySpawner.h +12 -7
  35. data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
  36. data/ext/common/ApplicationPool2/Process.h +2 -1
  37. data/ext/common/ApplicationPool2/Session.h +6 -6
  38. data/ext/common/ApplicationPool2/SmartSpawner.h +19 -4
  39. data/ext/common/ApplicationPool2/Socket.h +59 -27
  40. data/ext/common/ApplicationPool2/Spawner.h +2 -2
  41. data/ext/common/BackgroundEventLoop.cpp +6 -1
  42. data/ext/common/Constants.h +1 -1
  43. data/ext/common/EventedClient.h +1 -1
  44. data/ext/common/EventedServer.h +2 -2
  45. data/ext/common/FileDescriptor.h +25 -6
  46. data/ext/common/Logging.cpp +107 -52
  47. data/ext/common/Logging.h +146 -19
  48. data/ext/common/MessageClient.h +2 -2
  49. data/ext/common/MessageServer.h +3 -2
  50. data/ext/common/RandomGenerator.h +8 -7
  51. data/ext/common/SafeLibev.h +5 -1
  52. data/ext/common/ServerKit/AcceptLoadBalancer.h +9 -4
  53. data/ext/common/ServerKit/FdSinkChannel.h +5 -2
  54. data/ext/common/ServerKit/FdSourceChannel.h +5 -2
  55. data/ext/common/ServerKit/FileBufferedChannel.h +2 -0
  56. data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +7 -2
  57. data/ext/common/ServerKit/HttpServer.h +6 -0
  58. data/ext/common/ServerKit/Server.h +40 -3
  59. data/ext/common/StaticString.h +20 -0
  60. data/ext/common/UnionStation/Connection.h +3 -1
  61. data/ext/common/UnionStation/Core.h +6 -4
  62. data/ext/common/Utils.cpp +4 -3
  63. data/ext/common/Utils/DateParsing.h +19 -5
  64. data/ext/common/Utils/FastStringStream.h +183 -0
  65. data/ext/common/Utils/IOUtils.cpp +47 -28
  66. data/ext/common/Utils/IOUtils.h +56 -12
  67. data/ext/common/Utils/MessagePassing.h +3 -3
  68. data/ext/common/Utils/ProcessMetricsCollector.h +2 -2
  69. data/ext/common/Utils/ScopeGuard.h +16 -5
  70. data/ext/common/Utils/SpeedMeter.h +2 -2
  71. data/ext/common/Utils/StrIntUtils.cpp +6 -6
  72. data/ext/common/Utils/StrIntUtils.h +2 -1
  73. data/ext/common/agents/Base.cpp +56 -4
  74. data/ext/common/agents/Base.h +2 -1
  75. data/ext/common/agents/HelperAgent/AdminServer.h +122 -11
  76. data/ext/common/agents/HelperAgent/Main.cpp +16 -5
  77. data/ext/common/agents/HelperAgent/OptionParser.h +7 -1
  78. data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
  79. data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +10 -1
  80. data/ext/common/agents/HelperAgent/RequestHandler/Request.h +8 -0
  81. data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +4 -3
  82. data/ext/common/agents/LoggingAgent/AdminServer.h +57 -11
  83. data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -3
  84. data/ext/common/agents/LoggingAgent/Main.cpp +11 -3
  85. data/ext/common/agents/Watchdog/AdminServer.h +53 -11
  86. data/ext/common/agents/Watchdog/AgentWatcher.cpp +3 -3
  87. data/ext/common/agents/Watchdog/Main.cpp +13 -6
  88. data/ext/libeio/ecb.h +1 -1
  89. data/ext/libev/ev.c +13 -1
  90. data/ext/libev/ev.h +3 -0
  91. data/ext/nginx/Configuration.c +28 -6
  92. data/ext/nginx/Configuration.h +2 -1
  93. data/ext/nginx/ngx_http_passenger_module.c +5 -4
  94. data/ext/oxt/dynamic_thread_group.hpp +38 -5
  95. data/lib/phusion_passenger.rb +1 -1
  96. data/lib/phusion_passenger/common_library.rb +9 -5
  97. data/lib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  98. data/lib/phusion_passenger/packaging.rb +23 -37
  99. data/passenger.gemspec +21 -21
  100. metadata +4 -453
  101. metadata.gz.asc +7 -7
  102. data/.gitignore +0 -68
  103. data/.travis.yml +0 -16
  104. data/Gemfile +0 -17
  105. data/Gemfile.lock +0 -39
  106. data/Vagrantfile +0 -54
  107. data/debian.template/README.Debian +0 -15
  108. data/debian.template/changelog +0 -316
  109. data/debian.template/compat +0 -1
  110. data/debian.template/control.erb +0 -91
  111. data/debian.template/copyright +0 -385
  112. data/debian.template/libapache2-mod-passenger.install +0 -3
  113. data/debian.template/libapache2-mod-passenger.postinst +0 -36
  114. data/debian.template/libapache2-mod-passenger.prerm +0 -15
  115. data/debian.template/locations.ini.erb +0 -14
  116. data/debian.template/passenger-dev.install.erb +0 -3
  117. data/debian.template/passenger-doc.install.erb +0 -2
  118. data/debian.template/passenger.conf +0 -6
  119. data/debian.template/passenger.docs +0 -4
  120. data/debian.template/passenger.install.erb +0 -14
  121. data/debian.template/passenger.load +0 -3
  122. data/debian.template/passenger.manpages +0 -3
  123. data/debian.template/patches/series +0 -0
  124. data/debian.template/rules.erb +0 -76
  125. data/debian.template/source/format +0 -1
  126. data/ext/common/EventedBufferedInput.h +0 -458
  127. data/packaging/rpm/LICENSE.txt +0 -19
  128. data/packaging/rpm/Makefile +0 -13
  129. data/packaging/rpm/README.md +0 -41
  130. data/packaging/rpm/Vagrantfile +0 -38
  131. data/packaging/rpm/Vagrantfile.centos +0 -30
  132. data/packaging/rpm/build +0 -170
  133. data/packaging/rpm/create_project +0 -41
  134. data/packaging/rpm/git_update +0 -88
  135. data/packaging/rpm/image/Dockerfile +0 -37
  136. data/packaging/rpm/image/Gemfile +0 -3
  137. data/packaging/rpm/image/Gemfile.lock +0 -12
  138. data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +0 -19
  139. data/packaging/rpm/image/amazon2014-i386.cfg +0 -96
  140. data/packaging/rpm/image/amazon2014-x86_64.cfg +0 -96
  141. data/packaging/rpm/image/site-defaults.cfg +0 -168
  142. data/packaging/rpm/internal/build_tasks.rb +0 -238
  143. data/packaging/rpm/internal/dummygpg +0 -11
  144. data/packaging/rpm/internal/exec_build +0 -42
  145. data/packaging/rpm/internal/get_distro_arch +0 -14
  146. data/packaging/rpm/internal/get_distro_id +0 -10
  147. data/packaging/rpm/internal/git_update +0 -27
  148. data/packaging/rpm/internal/inituidgid +0 -17
  149. data/packaging/rpm/internal/my_init +0 -344
  150. data/packaging/rpm/internal/python27 +0 -3
  151. data/packaging/rpm/internal/repo_update +0 -46
  152. data/packaging/rpm/internal/setuser +0 -26
  153. data/packaging/rpm/internal/tracking_helper +0 -40
  154. data/packaging/rpm/jenkins_release +0 -99
  155. data/packaging/rpm/lib/build_tasks_support.rb +0 -402
  156. data/packaging/rpm/lib/preprocessor.rb +0 -341
  157. data/packaging/rpm/nginx_spec/404.html +0 -119
  158. data/packaging/rpm/nginx_spec/50x.html +0 -119
  159. data/packaging/rpm/nginx_spec/index.html +0 -116
  160. data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +0 -13
  161. data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
  162. data/packaging/rpm/nginx_spec/nginx-upgrade +0 -13
  163. data/packaging/rpm/nginx_spec/nginx-upgrade.8 +0 -151
  164. data/packaging/rpm/nginx_spec/nginx.conf +0 -131
  165. data/packaging/rpm/nginx_spec/nginx.init +0 -144
  166. data/packaging/rpm/nginx_spec/nginx.logrotate +0 -13
  167. data/packaging/rpm/nginx_spec/nginx.service +0 -15
  168. data/packaging/rpm/nginx_spec/nginx.spec.template +0 -560
  169. data/packaging/rpm/nginx_spec/nginx.sysconfig +0 -4
  170. data/packaging/rpm/nginx_spec/passenger.conf +0 -9
  171. data/packaging/rpm/nginx_spec/poweredby.png +0 -0
  172. data/packaging/rpm/passenger_spec/apache-passenger.conf.in +0 -26
  173. data/packaging/rpm/passenger_spec/config.json +0 -30
  174. data/packaging/rpm/passenger_spec/passenger.logrotate +0 -7
  175. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -478
  176. data/packaging/rpm/passenger_spec/passenger_dynamic_thread_group.patch +0 -16
  177. data/packaging/rpm/passenger_spec/passenger_tests_default_config_example.patch +0 -44
  178. data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -21
  179. data/packaging/rpm/repo_update +0 -114
  180. data/packaging/rpm/setup-system +0 -61
  181. data/packaging/rpm/shell +0 -10
  182. data/test/.rspec +0 -4
  183. data/test/config.json.example +0 -42
  184. data/test/config.json.rpm-automation +0 -15
  185. data/test/config.json.travis +0 -15
  186. data/test/config.json.vagrant +0 -30
  187. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +0 -124
  188. data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -30
  189. data/test/cxx/ApplicationPool2/PoolTest.cpp +0 -2062
  190. data/test/cxx/ApplicationPool2/ProcessTest.cpp +0 -130
  191. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +0 -243
  192. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +0 -823
  193. data/test/cxx/BufferedIOTest.cpp +0 -364
  194. data/test/cxx/CachedFileStatTest.cpp +0 -402
  195. data/test/cxx/CxxTestMain.cpp +0 -181
  196. data/test/cxx/DataStructures/LStringTest.cpp +0 -275
  197. data/test/cxx/DataStructures/StringKeyTableTest.cpp +0 -199
  198. data/test/cxx/DateParsingTest.cpp +0 -75
  199. data/test/cxx/DechunkerTest.cpp +0 -250
  200. data/test/cxx/EventedBufferedInputTest.cpp +0 -758
  201. data/test/cxx/EventedClientTest.cpp +0 -523
  202. data/test/cxx/FileChangeCheckerTest.cpp +0 -331
  203. data/test/cxx/FileDescriptorTest.cpp +0 -69
  204. data/test/cxx/FilterSupportTest.cpp +0 -433
  205. data/test/cxx/IOUtilsTest.cpp +0 -861
  206. data/test/cxx/MemoryKit/MbufTest.cpp +0 -213
  207. data/test/cxx/MessageIOTest.cpp +0 -360
  208. data/test/cxx/MessagePassingTest.cpp +0 -81
  209. data/test/cxx/MessageReadersWritersTest.cpp +0 -576
  210. data/test/cxx/MessageServerTest.cpp +0 -393
  211. data/test/cxx/ProcessMetricsCollectorTest.cpp +0 -123
  212. data/test/cxx/RequestHandlerTest.cpp +0 -1463
  213. data/test/cxx/ResponseCacheTest.cpp +0 -322
  214. data/test/cxx/ServerKit/ChannelTest.cpp +0 -1467
  215. data/test/cxx/ServerKit/CookieUtilsTest.cpp +0 -274
  216. data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +0 -992
  217. data/test/cxx/ServerKit/HeaderTableTest.cpp +0 -177
  218. data/test/cxx/ServerKit/HttpServerTest.cpp +0 -1580
  219. data/test/cxx/ServerKit/ServerTest.cpp +0 -408
  220. data/test/cxx/StaticStringTest.cpp +0 -220
  221. data/test/cxx/StringMapTest.cpp +0 -131
  222. data/test/cxx/SystemTimeTest.cpp +0 -37
  223. data/test/cxx/TemplateTest.cpp +0 -118
  224. data/test/cxx/TestSupport.cpp +0 -207
  225. data/test/cxx/TestSupport.h +0 -333
  226. data/test/cxx/UnionStationTest.cpp +0 -741
  227. data/test/cxx/Utils/StrIntUtilsTest.cpp +0 -39
  228. data/test/cxx/UtilsTest.cpp +0 -672
  229. data/test/cxx/VariantMapTest.cpp +0 -191
  230. data/test/gdbinit.example +0 -34
  231. data/test/integration_tests/apache2_tests.rb +0 -585
  232. data/test/integration_tests/downloaded_binaries_tests.rb +0 -185
  233. data/test/integration_tests/native_packaging_spec.rb +0 -368
  234. data/test/integration_tests/nginx_tests.rb +0 -402
  235. data/test/integration_tests/shared/example_webapp_tests.rb +0 -289
  236. data/test/integration_tests/source_packaging_test.rb +0 -201
  237. data/test/integration_tests/spec_helper.rb +0 -22
  238. data/test/integration_tests/standalone_tests.rb +0 -392
  239. data/test/node/line_reader_spec.js +0 -338
  240. data/test/node/spec_helper.js +0 -65
  241. data/test/oxt/backtrace_test.cpp +0 -88
  242. data/test/oxt/counter.hpp +0 -55
  243. data/test/oxt/dynamic_thread_group_test.cpp +0 -131
  244. data/test/oxt/oxt_test_main.cpp +0 -27
  245. data/test/oxt/spin_lock_test.cpp +0 -59
  246. data/test/oxt/syscall_interruption_test.cpp +0 -39
  247. data/test/ruby/debug_logging_spec.rb +0 -145
  248. data/test/ruby/message_channel_spec.rb +0 -196
  249. data/test/ruby/rack/loader_spec.rb +0 -42
  250. data/test/ruby/rack/preloader_spec.rb +0 -48
  251. data/test/ruby/rails3.0/loader_spec.rb +0 -26
  252. data/test/ruby/rails3.0/preloader_spec.rb +0 -32
  253. data/test/ruby/rails3.1/loader_spec.rb +0 -26
  254. data/test/ruby/rails3.1/preloader_spec.rb +0 -32
  255. data/test/ruby/rails3.2/loader_spec.rb +0 -26
  256. data/test/ruby/rails3.2/preloader_spec.rb +0 -32
  257. data/test/ruby/rails4.0/loader_spec.rb +0 -28
  258. data/test/ruby/rails4.0/preloader_spec.rb +0 -34
  259. data/test/ruby/rails4.1/loader_spec.rb +0 -28
  260. data/test/ruby/rails4.1/preloader_spec.rb +0 -34
  261. data/test/ruby/request_handler_spec.rb +0 -747
  262. data/test/ruby/shared/loader_sharedspec.rb +0 -247
  263. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +0 -357
  264. data/test/ruby/shared/ruby_loader_sharedspec.rb +0 -55
  265. data/test/ruby/spec_helper.rb +0 -114
  266. data/test/ruby/standalone/runtime_installer_spec.rb +0 -402
  267. data/test/ruby/union_station_spec.rb +0 -288
  268. data/test/ruby/utils/file_system_watcher_spec.rb +0 -229
  269. data/test/ruby/utils/hosts_file_parser.rb +0 -258
  270. data/test/ruby/utils/tee_input_spec.rb +0 -235
  271. data/test/ruby/utils/unseekable_socket_spec.rb +0 -66
  272. data/test/ruby/utils_spec.rb +0 -41
  273. data/test/stub/apache2/httpd.conf.erb +0 -122
  274. data/test/stub/apache2/mime.types +0 -748
  275. data/test/stub/garbage1.dat +0 -0
  276. data/test/stub/garbage2.dat +0 -0
  277. data/test/stub/garbage3.dat +0 -0
  278. data/test/stub/http_request.yml +0 -23
  279. data/test/stub/index.html +0 -1
  280. data/test/stub/nginx/koi-utf +0 -109
  281. data/test/stub/nginx/koi-win +0 -103
  282. data/test/stub/nginx/mime.types +0 -70
  283. data/test/stub/nginx/nginx.conf.erb +0 -70
  284. data/test/stub/nginx/win-utf +0 -126
  285. data/test/stub/node/app.js +0 -133
  286. data/test/stub/node/public/.gitignore +0 -0
  287. data/test/stub/node/tmp/.gitignore +0 -0
  288. data/test/stub/rack/config.ru +0 -95
  289. data/test/stub/rack/library.rb +0 -16
  290. data/test/stub/rack/public/.gitignore +0 -0
  291. data/test/stub/rack/start.rb +0 -52
  292. data/test/stub/rack/tmp/.gitignore +0 -0
  293. data/test/stub/rails3.0/.gitignore +0 -4
  294. data/test/stub/rails3.0/Gemfile +0 -22
  295. data/test/stub/rails3.0/Gemfile.lock +0 -80
  296. data/test/stub/rails3.0/Rakefile +0 -10
  297. data/test/stub/rails3.0/app/controllers/application_controller.rb +0 -4
  298. data/test/stub/rails3.0/app/helpers/application_helper.rb +0 -2
  299. data/test/stub/rails3.0/app/views/layouts/application.html.erb +0 -14
  300. data/test/stub/rails3.0/config.ru +0 -4
  301. data/test/stub/rails3.0/config/application.rb +0 -48
  302. data/test/stub/rails3.0/config/boot.rb +0 -13
  303. data/test/stub/rails3.0/config/database.yml +0 -22
  304. data/test/stub/rails3.0/config/environment.rb +0 -5
  305. data/test/stub/rails3.0/config/environments/development.rb +0 -19
  306. data/test/stub/rails3.0/config/environments/production.rb +0 -48
  307. data/test/stub/rails3.0/config/environments/test.rb +0 -32
  308. data/test/stub/rails3.0/config/initializers/backtrace_silencers.rb +0 -7
  309. data/test/stub/rails3.0/config/initializers/inflections.rb +0 -10
  310. data/test/stub/rails3.0/config/initializers/mime_types.rb +0 -5
  311. data/test/stub/rails3.0/config/initializers/passenger.rb +0 -2
  312. data/test/stub/rails3.0/config/initializers/secret_token.rb +0 -7
  313. data/test/stub/rails3.0/config/initializers/session_store.rb +0 -8
  314. data/test/stub/rails3.0/config/locales/en.yml +0 -5
  315. data/test/stub/rails3.0/config/routes.rb +0 -58
  316. data/test/stub/rails3.0/db/seeds.rb +0 -7
  317. data/test/stub/rails3.0/doc/README_FOR_APP +0 -2
  318. data/test/stub/rails3.0/lib/tasks/.gitkeep +0 -0
  319. data/test/stub/rails3.0/log/.gitignore +0 -0
  320. data/test/stub/rails3.0/public/404.html +0 -26
  321. data/test/stub/rails3.0/public/422.html +0 -26
  322. data/test/stub/rails3.0/public/500.html +0 -26
  323. data/test/stub/rails3.0/public/favicon.ico +0 -0
  324. data/test/stub/rails3.0/public/index.html +0 -279
  325. data/test/stub/rails3.0/public/robots.txt +0 -5
  326. data/test/stub/rails3.0/public/stylesheets/.gitkeep +0 -0
  327. data/test/stub/rails3.0/script/rails +0 -9
  328. data/test/stub/rails3.0/test/performance/browsing_test.rb +0 -9
  329. data/test/stub/rails3.0/test/test_helper.rb +0 -13
  330. data/test/stub/rails3.0/vendor/plugins/.gitkeep +0 -0
  331. data/test/stub/rails3.1/.gitignore +0 -15
  332. data/test/stub/rails3.1/Gemfile +0 -37
  333. data/test/stub/rails3.1/Gemfile.lock +0 -115
  334. data/test/stub/rails3.1/README +0 -261
  335. data/test/stub/rails3.1/Rakefile +0 -7
  336. data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
  337. data/test/stub/rails3.1/app/assets/stylesheets/application.css +0 -7
  338. data/test/stub/rails3.1/app/controllers/application_controller.rb +0 -3
  339. data/test/stub/rails3.1/app/helpers/application_helper.rb +0 -2
  340. data/test/stub/rails3.1/app/mailers/.gitkeep +0 -0
  341. data/test/stub/rails3.1/app/models/.gitkeep +0 -0
  342. data/test/stub/rails3.1/app/views/layouts/application.html.erb +0 -14
  343. data/test/stub/rails3.1/config.ru +0 -4
  344. data/test/stub/rails3.1/config/application.rb +0 -48
  345. data/test/stub/rails3.1/config/boot.rb +0 -6
  346. data/test/stub/rails3.1/config/database.yml +0 -25
  347. data/test/stub/rails3.1/config/environment.rb +0 -5
  348. data/test/stub/rails3.1/config/environments/development.rb +0 -30
  349. data/test/stub/rails3.1/config/environments/production.rb +0 -60
  350. data/test/stub/rails3.1/config/environments/test.rb +0 -39
  351. data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +0 -7
  352. data/test/stub/rails3.1/config/initializers/inflections.rb +0 -10
  353. data/test/stub/rails3.1/config/initializers/mime_types.rb +0 -5
  354. data/test/stub/rails3.1/config/initializers/passenger.rb +0 -2
  355. data/test/stub/rails3.1/config/initializers/secret_token.rb +0 -7
  356. data/test/stub/rails3.1/config/initializers/session_store.rb +0 -8
  357. data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +0 -14
  358. data/test/stub/rails3.1/config/locales/en.yml +0 -5
  359. data/test/stub/rails3.1/config/routes.rb +0 -58
  360. data/test/stub/rails3.1/db/seeds.rb +0 -7
  361. data/test/stub/rails3.1/doc/README_FOR_APP +0 -2
  362. data/test/stub/rails3.1/lib/assets/.gitkeep +0 -0
  363. data/test/stub/rails3.1/lib/tasks/.gitkeep +0 -0
  364. data/test/stub/rails3.1/log/.gitkeep +0 -0
  365. data/test/stub/rails3.1/public/404.html +0 -26
  366. data/test/stub/rails3.1/public/422.html +0 -26
  367. data/test/stub/rails3.1/public/500.html +0 -26
  368. data/test/stub/rails3.1/public/favicon.ico +0 -0
  369. data/test/stub/rails3.1/public/index.html +0 -241
  370. data/test/stub/rails3.1/public/robots.txt +0 -5
  371. data/test/stub/rails3.1/script/rails +0 -6
  372. data/test/stub/rails3.1/test/fixtures/.gitkeep +0 -0
  373. data/test/stub/rails3.1/test/functional/.gitkeep +0 -0
  374. data/test/stub/rails3.1/test/integration/.gitkeep +0 -0
  375. data/test/stub/rails3.1/test/performance/browsing_test.rb +0 -12
  376. data/test/stub/rails3.1/test/test_helper.rb +0 -13
  377. data/test/stub/rails3.1/test/unit/.gitkeep +0 -0
  378. data/test/stub/rails3.1/vendor/assets/stylesheets/.gitkeep +0 -0
  379. data/test/stub/rails3.1/vendor/plugins/.gitkeep +0 -0
  380. data/test/stub/rails3.2/.gitignore +0 -15
  381. data/test/stub/rails3.2/Gemfile +0 -39
  382. data/test/stub/rails3.2/Gemfile.lock +0 -113
  383. data/test/stub/rails3.2/Rakefile +0 -7
  384. data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
  385. data/test/stub/rails3.2/app/assets/stylesheets/application.css +0 -13
  386. data/test/stub/rails3.2/app/controllers/application_controller.rb +0 -3
  387. data/test/stub/rails3.2/app/helpers/application_helper.rb +0 -2
  388. data/test/stub/rails3.2/app/mailers/.gitkeep +0 -0
  389. data/test/stub/rails3.2/app/models/.gitkeep +0 -0
  390. data/test/stub/rails3.2/app/views/layouts/application.html.erb +0 -14
  391. data/test/stub/rails3.2/config.ru +0 -4
  392. data/test/stub/rails3.2/config/application.rb +0 -62
  393. data/test/stub/rails3.2/config/boot.rb +0 -6
  394. data/test/stub/rails3.2/config/database.yml +0 -25
  395. data/test/stub/rails3.2/config/environment.rb +0 -5
  396. data/test/stub/rails3.2/config/environments/development.rb +0 -37
  397. data/test/stub/rails3.2/config/environments/production.rb +0 -67
  398. data/test/stub/rails3.2/config/environments/test.rb +0 -37
  399. data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +0 -7
  400. data/test/stub/rails3.2/config/initializers/inflections.rb +0 -15
  401. data/test/stub/rails3.2/config/initializers/mime_types.rb +0 -5
  402. data/test/stub/rails3.2/config/initializers/passenger.rb +0 -2
  403. data/test/stub/rails3.2/config/initializers/secret_token.rb +0 -7
  404. data/test/stub/rails3.2/config/initializers/session_store.rb +0 -8
  405. data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +0 -14
  406. data/test/stub/rails3.2/config/locales/en.yml +0 -5
  407. data/test/stub/rails3.2/config/routes.rb +0 -58
  408. data/test/stub/rails3.2/db/seeds.rb +0 -7
  409. data/test/stub/rails3.2/doc/README_FOR_APP +0 -2
  410. data/test/stub/rails3.2/lib/assets/.gitkeep +0 -0
  411. data/test/stub/rails3.2/lib/tasks/.gitkeep +0 -0
  412. data/test/stub/rails3.2/log/.gitkeep +0 -0
  413. data/test/stub/rails3.2/public/404.html +0 -26
  414. data/test/stub/rails3.2/public/422.html +0 -26
  415. data/test/stub/rails3.2/public/500.html +0 -25
  416. data/test/stub/rails3.2/public/favicon.ico +0 -0
  417. data/test/stub/rails3.2/public/index.html +0 -241
  418. data/test/stub/rails3.2/public/robots.txt +0 -5
  419. data/test/stub/rails3.2/script/rails +0 -6
  420. data/test/stub/rails3.2/test/fixtures/.gitkeep +0 -0
  421. data/test/stub/rails3.2/test/functional/.gitkeep +0 -0
  422. data/test/stub/rails3.2/test/integration/.gitkeep +0 -0
  423. data/test/stub/rails3.2/test/performance/browsing_test.rb +0 -12
  424. data/test/stub/rails3.2/test/test_helper.rb +0 -13
  425. data/test/stub/rails3.2/test/unit/.gitkeep +0 -0
  426. data/test/stub/rails3.2/vendor/assets/stylesheets/.gitkeep +0 -0
  427. data/test/stub/rails3.2/vendor/plugins/.gitkeep +0 -0
  428. data/test/stub/rails4.0/.gitignore +0 -16
  429. data/test/stub/rails4.0/Gemfile +0 -45
  430. data/test/stub/rails4.0/Gemfile.lock +0 -126
  431. data/test/stub/rails4.0/README.rdoc +0 -28
  432. data/test/stub/rails4.0/Rakefile +0 -6
  433. data/test/stub/rails4.0/app/assets/images/.keep +0 -0
  434. data/test/stub/rails4.0/app/assets/javascripts/application.js +0 -16
  435. data/test/stub/rails4.0/app/assets/stylesheets/application.css +0 -13
  436. data/test/stub/rails4.0/app/controllers/application_controller.rb +0 -5
  437. data/test/stub/rails4.0/app/controllers/concerns/.keep +0 -0
  438. data/test/stub/rails4.0/app/helpers/application_helper.rb +0 -2
  439. data/test/stub/rails4.0/app/mailers/.keep +0 -0
  440. data/test/stub/rails4.0/app/models/.keep +0 -0
  441. data/test/stub/rails4.0/app/models/concerns/.keep +0 -0
  442. data/test/stub/rails4.0/app/views/layouts/application.html.erb +0 -14
  443. data/test/stub/rails4.0/bin/bundle +0 -3
  444. data/test/stub/rails4.0/bin/rails +0 -4
  445. data/test/stub/rails4.0/bin/rake +0 -4
  446. data/test/stub/rails4.0/config.ru +0 -4
  447. data/test/stub/rails4.0/config/application.rb +0 -23
  448. data/test/stub/rails4.0/config/boot.rb +0 -4
  449. data/test/stub/rails4.0/config/database.yml +0 -25
  450. data/test/stub/rails4.0/config/environment.rb +0 -5
  451. data/test/stub/rails4.0/config/environments/development.rb +0 -29
  452. data/test/stub/rails4.0/config/environments/production.rb +0 -80
  453. data/test/stub/rails4.0/config/environments/test.rb +0 -36
  454. data/test/stub/rails4.0/config/initializers/backtrace_silencers.rb +0 -7
  455. data/test/stub/rails4.0/config/initializers/filter_parameter_logging.rb +0 -4
  456. data/test/stub/rails4.0/config/initializers/inflections.rb +0 -16
  457. data/test/stub/rails4.0/config/initializers/mime_types.rb +0 -5
  458. data/test/stub/rails4.0/config/initializers/passenger.rb +0 -2
  459. data/test/stub/rails4.0/config/initializers/secret_token.rb +0 -12
  460. data/test/stub/rails4.0/config/initializers/session_store.rb +0 -3
  461. data/test/stub/rails4.0/config/initializers/wrap_parameters.rb +0 -14
  462. data/test/stub/rails4.0/config/locales/en.yml +0 -23
  463. data/test/stub/rails4.0/config/routes.rb +0 -57
  464. data/test/stub/rails4.0/db/seeds.rb +0 -7
  465. data/test/stub/rails4.0/lib/assets/.keep +0 -0
  466. data/test/stub/rails4.0/lib/tasks/.keep +0 -0
  467. data/test/stub/rails4.0/log/.keep +0 -0
  468. data/test/stub/rails4.0/public/404.html +0 -58
  469. data/test/stub/rails4.0/public/422.html +0 -58
  470. data/test/stub/rails4.0/public/500.html +0 -57
  471. data/test/stub/rails4.0/public/favicon.ico +0 -0
  472. data/test/stub/rails4.0/public/robots.txt +0 -5
  473. data/test/stub/rails4.0/test/controllers/.keep +0 -0
  474. data/test/stub/rails4.0/test/fixtures/.keep +0 -0
  475. data/test/stub/rails4.0/test/helpers/.keep +0 -0
  476. data/test/stub/rails4.0/test/integration/.keep +0 -0
  477. data/test/stub/rails4.0/test/mailers/.keep +0 -0
  478. data/test/stub/rails4.0/test/models/.keep +0 -0
  479. data/test/stub/rails4.0/test/test_helper.rb +0 -15
  480. data/test/stub/rails4.0/vendor/assets/javascripts/.keep +0 -0
  481. data/test/stub/rails4.0/vendor/assets/stylesheets/.keep +0 -0
  482. data/test/stub/rails4.1/.gitignore +0 -16
  483. data/test/stub/rails4.1/Gemfile +0 -45
  484. data/test/stub/rails4.1/Gemfile.lock +0 -129
  485. data/test/stub/rails4.1/README.rdoc +0 -28
  486. data/test/stub/rails4.1/Rakefile +0 -6
  487. data/test/stub/rails4.1/app/assets/images/.keep +0 -0
  488. data/test/stub/rails4.1/app/assets/javascripts/application.js +0 -16
  489. data/test/stub/rails4.1/app/assets/stylesheets/application.css +0 -13
  490. data/test/stub/rails4.1/app/controllers/application_controller.rb +0 -5
  491. data/test/stub/rails4.1/app/controllers/concerns/.keep +0 -0
  492. data/test/stub/rails4.1/app/helpers/application_helper.rb +0 -2
  493. data/test/stub/rails4.1/app/mailers/.keep +0 -0
  494. data/test/stub/rails4.1/app/models/.keep +0 -0
  495. data/test/stub/rails4.1/app/models/concerns/.keep +0 -0
  496. data/test/stub/rails4.1/app/views/layouts/application.html.erb +0 -14
  497. data/test/stub/rails4.1/bin/bundle +0 -3
  498. data/test/stub/rails4.1/bin/rails +0 -4
  499. data/test/stub/rails4.1/bin/rake +0 -4
  500. data/test/stub/rails4.1/config.ru +0 -4
  501. data/test/stub/rails4.1/config/application.rb +0 -23
  502. data/test/stub/rails4.1/config/boot.rb +0 -4
  503. data/test/stub/rails4.1/config/database.yml +0 -25
  504. data/test/stub/rails4.1/config/environment.rb +0 -5
  505. data/test/stub/rails4.1/config/environments/development.rb +0 -29
  506. data/test/stub/rails4.1/config/environments/production.rb +0 -80
  507. data/test/stub/rails4.1/config/environments/test.rb +0 -36
  508. data/test/stub/rails4.1/config/initializers/backtrace_silencers.rb +0 -7
  509. data/test/stub/rails4.1/config/initializers/filter_parameter_logging.rb +0 -4
  510. data/test/stub/rails4.1/config/initializers/inflections.rb +0 -16
  511. data/test/stub/rails4.1/config/initializers/mime_types.rb +0 -5
  512. data/test/stub/rails4.1/config/initializers/passenger.rb +0 -5
  513. data/test/stub/rails4.1/config/initializers/secret_token.rb +0 -12
  514. data/test/stub/rails4.1/config/initializers/session_store.rb +0 -3
  515. data/test/stub/rails4.1/config/initializers/wrap_parameters.rb +0 -14
  516. data/test/stub/rails4.1/config/locales/en.yml +0 -23
  517. data/test/stub/rails4.1/config/routes.rb +0 -57
  518. data/test/stub/rails4.1/db/seeds.rb +0 -7
  519. data/test/stub/rails4.1/lib/assets/.keep +0 -0
  520. data/test/stub/rails4.1/lib/tasks/.keep +0 -0
  521. data/test/stub/rails4.1/log/.keep +0 -0
  522. data/test/stub/rails4.1/public/404.html +0 -58
  523. data/test/stub/rails4.1/public/422.html +0 -58
  524. data/test/stub/rails4.1/public/500.html +0 -57
  525. data/test/stub/rails4.1/public/favicon.ico +0 -0
  526. data/test/stub/rails4.1/public/robots.txt +0 -5
  527. data/test/stub/rails4.1/test/controllers/.keep +0 -0
  528. data/test/stub/rails4.1/test/fixtures/.keep +0 -0
  529. data/test/stub/rails4.1/test/helpers/.keep +0 -0
  530. data/test/stub/rails4.1/test/integration/.keep +0 -0
  531. data/test/stub/rails4.1/test/mailers/.keep +0 -0
  532. data/test/stub/rails4.1/test/models/.keep +0 -0
  533. data/test/stub/rails4.1/test/test_helper.rb +0 -15
  534. data/test/stub/rails4.1/vendor/assets/javascripts/.keep +0 -0
  535. data/test/stub/rails4.1/vendor/assets/stylesheets/.keep +0 -0
  536. data/test/stub/start_error.pl +0 -24
  537. data/test/stub/upload_data.txt +0 -494
  538. data/test/stub/wsgi/passenger_wsgi.py +0 -212
  539. data/test/stub/wsgi/public/.gitignore +0 -0
  540. data/test/stub/wsgi/tmp/.gitignore +0 -0
  541. data/test/support/allocate_memory.c +0 -14
  542. data/test/support/apache2_controller.rb +0 -258
  543. data/test/support/multipart.rb +0 -62
  544. data/test/support/nginx_controller.rb +0 -97
  545. data/test/support/placebo-preloader.rb +0 -88
  546. data/test/support/test_helper.rb +0 -455
  547. data/test/support/valgrind.h +0 -2539
  548. data/test/tut/tut.h +0 -1310
  549. data/test/tut/tut_reporter.h +0 -256
  550. data/test/valgrind-osx.supp +0 -7
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2013 Phusion
3
+ * Copyright (c) 2010-2015 Phusion
4
4
  *
5
5
  * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
6
  *
@@ -265,7 +265,7 @@ public:
265
265
  * arguments to this agent process through this fd, and we'll receive
266
266
  * startup information through it as well.
267
267
  */
268
- fds = createUnixSocketPair();
268
+ fds = createUnixSocketPair(__FILE__, __LINE__);
269
269
 
270
270
  pid = syscalls::fork();
271
271
  if (pid == 0) {
@@ -334,7 +334,7 @@ public:
334
334
  throw SystemException("Cannot fork a new process", e);
335
335
  } else {
336
336
  // Parent
337
- FileDescriptor feedbackFd = fds[0];
337
+ FileDescriptor feedbackFd(fds[0]);
338
338
  vector<string> args;
339
339
 
340
340
  fds[1].close();
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2014 Phusion
3
+ * Copyright (c) 2010-2015 Phusion
4
4
  *
5
5
  * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
6
  *
@@ -120,7 +120,9 @@ namespace WatchdogAgent {
120
120
  AdminServer *adminServer;
121
121
 
122
122
  WorkingObjects()
123
- : reportFile(-1),
123
+ : errorEvent(__FILE__, __LINE__, "WorkingObjects: errorEvent"),
124
+ exitEvent(__FILE__, __LINE__, "WorkingObjects: exitEvent"),
125
+ reportFile(-1),
124
126
  pidsCleanedUp(false),
125
127
  pidFileCleanedUp(false),
126
128
  bgloop(NULL),
@@ -338,6 +340,7 @@ readCleanupPids(const WorkingObjectsPtr &wo) {
338
340
  size_t ret;
339
341
 
340
342
  ret = fread(buf, 1, 32, f);
343
+ fclose(f);
341
344
  if (ret > 0) {
342
345
  buf[ret] = '\0';
343
346
  result.push_back(atoi(buf));
@@ -866,8 +869,8 @@ createPidFile() {
866
869
  }
867
870
 
868
871
  UPDATE_TRACE_POINT();
872
+ FdGuard guard(fd, __FILE__, __LINE__);
869
873
  writeExact(fd, pidStr, strlen(pidStr));
870
- syscalls::close(fd);
871
874
  }
872
875
  }
873
876
 
@@ -882,6 +885,7 @@ openReportFile(const WorkingObjectsPtr &wo) {
882
885
  throw FileSystemException("Cannot open report file " + reportFile, e, reportFile);
883
886
  }
884
887
 
888
+ P_LOG_FILE_DESCRIPTOR_OPEN4(fd, __FILE__, __LINE__, "WorkingObjects: reportFile");
885
889
  wo->reportFile = fd;
886
890
  }
887
891
  }
@@ -990,6 +994,7 @@ initializeWorkingObjects(const WorkingObjectsPtr &wo, InstanceDirToucherPtr &ins
990
994
  throw FileSystemException("Cannot open " + lockFilePath + " for reading",
991
995
  e, lockFilePath);
992
996
  }
997
+ P_LOG_FILE_DESCRIPTOR_OPEN4(wo->lockFile, __FILE__, __LINE__, "WorkingObjects: lock file");
993
998
 
994
999
  createFile(wo->instanceDir->getPath() + "/watchdog.pid", toString(getpid()));
995
1000
 
@@ -1055,8 +1060,8 @@ initializeWorkingObjects(const WorkingObjectsPtr &wo, InstanceDirToucherPtr &ins
1055
1060
  static void
1056
1061
  initializeAgentWatchers(const WorkingObjectsPtr &wo, vector<AgentWatcherPtr> &watchers) {
1057
1062
  TRACE_POINT();
1058
- watchers.push_back(make_shared<HelperAgentWatcher>(wo));
1059
- watchers.push_back(make_shared<LoggingAgentWatcher>(wo));
1063
+ watchers.push_back(boost::make_shared<HelperAgentWatcher>(wo));
1064
+ watchers.push_back(boost::make_shared<LoggingAgentWatcher>(wo));
1060
1065
  }
1061
1066
 
1062
1067
  static void
@@ -1120,7 +1125,8 @@ initializeAdminServer(const WorkingObjectsPtr &wo) {
1120
1125
  UPDATE_TRACE_POINT();
1121
1126
  for (unsigned int i = 0; i < adminAddresses.size(); i++) {
1122
1127
  P_DEBUG("Admin server will listen on " << adminAddresses[i]);
1123
- wo->adminServerFds[i] = createServer(adminAddresses[i]);
1128
+ wo->adminServerFds[i] = createServer(adminAddresses[i], 0, true,
1129
+ __FILE__, __LINE__);
1124
1130
  if (getSocketAddressType(adminAddresses[i]) == SAT_UNIX) {
1125
1131
  makeFileWorldReadableAndWritable(parseUnixSocketAddress(adminAddresses[i]));
1126
1132
  }
@@ -1216,6 +1222,7 @@ reportAgentsInformation(const WorkingObjectsPtr &wo, const vector<AgentWatcherPt
1216
1222
 
1217
1223
  writeExact(wo->reportFile, str.data(), str.size());
1218
1224
  close(wo->reportFile);
1225
+ P_LOG_FILE_DESCRIPTOR_CLOSE(wo->reportFile);
1219
1226
  wo->reportFile = -1;
1220
1227
  }
1221
1228
  }
@@ -472,7 +472,7 @@ ecb_inline uint64_t ecb_rotr64 (uint64_t x, unsigned int count) { return (x << (
472
472
  #define ecb_unreachable() __builtin_unreachable ()
473
473
  #else
474
474
  /* this seems to work fine, but gcc always emits a warning for it :/ */
475
- ecb_inline void ecb_unreachable (void) ecb_noreturn;
475
+ ecb_inline ecb_noreturn void ecb_unreachable (void);
476
476
  ecb_inline void ecb_unreachable (void) { }
477
477
  #endif
478
478
 
@@ -967,7 +967,7 @@ ecb_inline uint64_t ecb_rotr64 (uint64_t x, unsigned int count) { return (x << (
967
967
  #define ecb_unreachable() __builtin_unreachable ()
968
968
  #else
969
969
  /* this seems to work fine, but gcc always emits a warning for it :/ */
970
- ecb_inline void ecb_unreachable (void) ecb_noreturn;
970
+ ecb_inline ecb_noreturn void ecb_unreachable (void);
971
971
  ecb_inline void ecb_unreachable (void) { }
972
972
  #endif
973
973
 
@@ -2477,6 +2477,18 @@ ev_backend (EV_P) EV_THROW
2477
2477
  return backend;
2478
2478
  }
2479
2479
 
2480
+ int
2481
+ ev_backend_fd (EV_P) EV_THROW
2482
+ {
2483
+ return backend_fd;
2484
+ }
2485
+
2486
+ int
2487
+ ev_loop_get_pipe (EV_P_ unsigned int index) EV_THROW
2488
+ {
2489
+ return evpipe[index];
2490
+ }
2491
+
2480
2492
  #if EV_FEATURE_API
2481
2493
  unsigned int
2482
2494
  ev_iteration (EV_P) EV_THROW
@@ -605,6 +605,9 @@ EV_API_DECL void ev_loop_fork (EV_P) EV_THROW;
605
605
 
606
606
  EV_API_DECL unsigned int ev_backend (EV_P) EV_THROW; /* backend in use by loop */
607
607
 
608
+ EV_API_DECL int ev_backend_fd (EV_P) EV_THROW;
609
+ EV_API_DECL int ev_loop_get_pipe (EV_P_ unsigned int index) EV_THROW;
610
+
608
611
  EV_API_DECL void ev_now_update (EV_P) EV_THROW; /* update event loop time */
609
612
 
610
613
  #if EV_WALK_ENABLE
@@ -84,8 +84,10 @@ passenger_create_main_conf(ngx_conf_t *cf)
84
84
  conf->default_ruby.data = NULL;
85
85
  conf->default_ruby.len = 0;
86
86
  conf->log_level = (ngx_int_t) NGX_CONF_UNSET;
87
- conf->debug_log_file.data = NULL;
88
- conf->debug_log_file.len = 0;
87
+ conf->log_file.data = NULL;
88
+ conf->log_file.len = 0;
89
+ conf->file_descriptor_log_file.data = NULL;
90
+ conf->file_descriptor_log_file.len = 0;
89
91
  conf->data_buffer_dir.data = NULL;
90
92
  conf->data_buffer_dir.len = 0;
91
93
  conf->instance_registry_dir.data = NULL;
@@ -142,8 +144,12 @@ passenger_init_main_conf(ngx_conf_t *cf, void *conf_pointer)
142
144
  conf->log_level = DEFAULT_LOG_LEVEL;
143
145
  }
144
146
 
145
- if (conf->debug_log_file.len == 0) {
146
- conf->debug_log_file.data = (u_char *) "";
147
+ if (conf->log_file.len == 0) {
148
+ conf->log_file.data = (u_char *) "";
149
+ }
150
+
151
+ if (conf->file_descriptor_log_file.len == 0) {
152
+ conf->file_descriptor_log_file.data = (u_char *) "";
147
153
  }
148
154
 
149
155
  if (conf->data_buffer_dir.len == 0) {
@@ -1272,11 +1278,18 @@ const ngx_command_t passenger_commands[] = {
1272
1278
  offsetof(passenger_main_conf_t, log_level),
1273
1279
  NULL },
1274
1280
 
1275
- { ngx_string("passenger_debug_log_file"),
1281
+ { ngx_string("passenger_log_file"),
1282
+ NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1283
+ ngx_conf_set_str_slot,
1284
+ NGX_HTTP_MAIN_CONF_OFFSET,
1285
+ offsetof(passenger_main_conf_t, log_file),
1286
+ NULL },
1287
+
1288
+ { ngx_string("passenger_file_descriptor_log_file"),
1276
1289
  NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1277
1290
  ngx_conf_set_str_slot,
1278
1291
  NGX_HTTP_MAIN_CONF_OFFSET,
1279
- offsetof(passenger_main_conf_t, debug_log_file),
1292
+ offsetof(passenger_main_conf_t, file_descriptor_log_file),
1280
1293
  NULL },
1281
1294
 
1282
1295
  { ngx_string("passenger_data_buffer_dir"),
@@ -1416,6 +1429,15 @@ const ngx_command_t passenger_commands[] = {
1416
1429
 
1417
1430
  #include "ConfigurationCommands.c"
1418
1431
 
1432
+ /******** Backward compatibility ********/
1433
+
1434
+ { ngx_string("passenger_debug_log_file"),
1435
+ NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1436
+ ngx_conf_set_str_slot,
1437
+ NGX_HTTP_MAIN_CONF_OFFSET,
1438
+ offsetof(passenger_main_conf_t, log_file),
1439
+ NULL },
1440
+
1419
1441
  ngx_null_command
1420
1442
  };
1421
1443
 
@@ -56,7 +56,8 @@ typedef struct {
56
56
  ngx_array_t *ctl;
57
57
  ngx_str_t default_ruby;
58
58
  ngx_int_t log_level;
59
- ngx_str_t debug_log_file;
59
+ ngx_str_t log_file;
60
+ ngx_str_t file_descriptor_log_file;
60
61
  ngx_str_t data_buffer_dir;
61
62
  ngx_str_t instance_registry_dir;
62
63
  ngx_flag_t abort_on_startup_error;
@@ -279,6 +279,7 @@ start_watchdog(ngx_cycle_t *cycle) {
279
279
  pp_variant_map_set_bool (params, "multi_app", 1);
280
280
  pp_variant_map_set_bool (params, "load_shell_envvars", 1);
281
281
  pp_variant_map_set_int (params, "log_level", passenger_main_conf.log_level);
282
+ pp_variant_map_set_ngx_str(params, "file_descriptor_log_file", &passenger_main_conf.file_descriptor_log_file);
282
283
  pp_variant_map_set_ngx_str(params, "data_buffer_dir", &passenger_main_conf.data_buffer_dir);
283
284
  pp_variant_map_set_ngx_str(params, "instance_registry_dir", &passenger_main_conf.instance_registry_dir);
284
285
  pp_variant_map_set_bool (params, "user_switching", passenger_main_conf.user_switching);
@@ -299,12 +300,12 @@ start_watchdog(ngx_cycle_t *cycle) {
299
300
  pp_variant_map_set_ngx_str(params, "union_station_proxy_address", &passenger_main_conf.union_station_proxy_address);
300
301
  pp_variant_map_set_strset (params, "prestart_urls", (const char **) prestart_uris_ary, passenger_main_conf.prestart_uris->nelts);
301
302
 
302
- if (passenger_main_conf.debug_log_file.len > 0) {
303
- pp_variant_map_set_ngx_str(params, "debug_log_file", &passenger_main_conf.debug_log_file);
303
+ if (passenger_main_conf.log_file.len > 0) {
304
+ pp_variant_map_set_ngx_str(params, "log_file", &passenger_main_conf.log_file);
304
305
  } else if (cycle->new_log.file->name.len > 0) {
305
- pp_variant_map_set_ngx_str(params, "debug_log_file", &cycle->new_log.file->name);
306
+ pp_variant_map_set_ngx_str(params, "log_file", &cycle->new_log.file->name);
306
307
  } else if (cycle->log->file->name.len > 0) {
307
- pp_variant_map_set_ngx_str(params, "debug_log_file", &cycle->log->file->name);
308
+ pp_variant_map_set_ngx_str(params, "log_file", &cycle->log->file->name);
308
309
  }
309
310
 
310
311
  ctl = (ngx_keyval_t *) passenger_main_conf.ctl->elts;
@@ -2,7 +2,7 @@
2
2
  * OXT - OS eXtensions for boosT
3
3
  * Provides important functionality necessary for writing robust server software.
4
4
  *
5
- * Copyright (c) 2010-2013 Phusion
5
+ * Copyright (c) 2010-2015 Phusion
6
6
  *
7
7
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  * of this software and associated documentation files (the "Software"), to deal
@@ -84,6 +84,27 @@ private:
84
84
  /** The number of threads in this thread group. */
85
85
  unsigned int nthreads;
86
86
 
87
+ struct thread_func_data {
88
+ boost::function<void ()> entry_point;
89
+ thread_handle *handle;
90
+ };
91
+
92
+ struct thread_func_data_guard {
93
+ thread_func_data *data;
94
+
95
+ thread_func_data_guard(thread_func_data *_data)
96
+ : data(_data)
97
+ { }
98
+
99
+ ~thread_func_data_guard() {
100
+ delete data;
101
+ }
102
+
103
+ void clear() {
104
+ data = NULL;
105
+ }
106
+ };
107
+
87
108
  struct thread_cleanup {
88
109
  dynamic_thread_group *thread_group;
89
110
  thread_handle *handle;
@@ -104,9 +125,16 @@ private:
104
125
  }
105
126
  };
106
127
 
107
- void thread_main(boost::function<void ()> &func, thread_handle *handle) {
108
- thread_cleanup c(this, handle);
109
- func();
128
+ void thread_main(thread_func_data *data) {
129
+ thread_func_data_guard guard(data);
130
+ thread_cleanup c(this, data->handle);
131
+ data->entry_point();
132
+ // Clear the entry point object now because it may contain bound objects.
133
+ // We want to run the destructor for these objects now, before this thread
134
+ // is removed from the thread group list, so that if anybody calls
135
+ // dynamic_thread_group::join_all() the caller can be sure that the
136
+ // threads are really done.
137
+ data->entry_point = boost::function<void ()>();
110
138
  }
111
139
 
112
140
  public:
@@ -136,11 +164,16 @@ public:
136
164
  handle->iterator = thread_handles.end();
137
165
  handle->iterator--;
138
166
  try {
167
+ thread_func_data *data = new thread_func_data();
168
+ thread_func_data_guard guard(data);
169
+ data->entry_point = func;
170
+ data->handle = handle.get();
139
171
  handle->thr = new thread(
140
- boost::bind(&dynamic_thread_group::thread_main, this, func, handle.get()),
172
+ boost::bind(&dynamic_thread_group::thread_main, this, data),
141
173
  name,
142
174
  stack_size
143
175
  );
176
+ guard.clear();
144
177
  nthreads++;
145
178
  } catch (...) {
146
179
  thread_handles.erase(handle->iterator);
@@ -30,7 +30,7 @@ module PhusionPassenger
30
30
 
31
31
  PACKAGE_NAME = 'passenger'
32
32
  # Run 'rake ext/common/Constants.h' after changing this number.
33
- VERSION_STRING = '5.0.4'
33
+ VERSION_STRING = '5.0.5'
34
34
 
35
35
  PREFERRED_NGINX_VERSION = '1.6.2'
36
36
  NGINX_SHA256_CHECKSUM = 'b5608c2959d3e7ad09b20fc8f9e5bd4bc87b3bc8ba5936a513c04ed8f1391a18'
@@ -103,7 +103,7 @@ class CommonLibraryBuilder
103
103
  def enable_optimizations!(lto = false)
104
104
  @default_optimization_level = "-O"
105
105
  if lto
106
- @default_optimization_level << " -flto"
106
+ @default_extra_optimization_flags = "-flto"
107
107
  end
108
108
  end
109
109
 
@@ -135,22 +135,26 @@ private
135
135
  file(object_file => dependencies_for(options)) do
136
136
  case options[:optimize]
137
137
  when :light
138
- optimize = "-O"
138
+ optimization_level = "-O"
139
139
  when true, :heavy
140
- optimize = "-O2"
140
+ optimization_level = "-O2"
141
141
  when :very_heavy
142
- optimize = "-O3"
142
+ optimization_level = "-O3"
143
143
  when nil
144
- optimize = @default_optimization_level
144
+ optimization_level = @default_optimization_level
145
145
  else
146
146
  raise "Unknown optimization level #{options[:optimize]}"
147
147
  end
148
+
149
+ optimize = "#{optimization_level} #{@default_extra_optimization_flags}".strip
150
+
148
151
  if options[:strict_aliasing] == false # and not nil
149
152
  optimize = "#{optimize} -fno-strict-aliasing"
150
153
  # Disable link-time optimization so that we can no-strict-aliasing
151
154
  # works: http://stackoverflow.com/a/25765338/20816
152
155
  optimize.sub!(/-flto/, "")
153
156
  end
157
+
154
158
  ensure_directory_exists(File.dirname(object_file))
155
159
  # We put 'optimize' at the end of the command string so that it overrides
156
160
  # the default optimization level embedded in 'cflags'.
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2014 Phusion
2
+ # Copyright (c) 2014-2015 Phusion
3
3
  #
4
4
  # "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
5
  #
@@ -49,7 +49,7 @@ module PhusionPassenger
49
49
  opts.banner = "Usage: passenger-config reopen-logs [OPTIONS]\n"
50
50
  opts.separator ""
51
51
  opts.separator " Instruct #{PROGRAM_NAME} agent processes to reopen their log files. This"
52
- opts.separator " should be involved after you've rotated logs. This command returns after"
52
+ opts.separator " should be invoked after you've rotated log files. This command returns after"
53
53
  opts.separator " the log files have been reopened."
54
54
  opts.separator ""
55
55
 
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2010-2014 Phusion
2
+ # Copyright (c) 2010-2015 Phusion
3
3
  #
4
4
  # "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
5
  #
@@ -68,14 +68,9 @@ module PhusionPassenger
68
68
  # A list of globs which match all files that should be packaged
69
69
  # in the Phusion Passenger gem or tarball.
70
70
  GLOB = [
71
- '.gitignore',
72
- '.travis.yml',
73
71
  '.editorconfig',
74
72
  'configure',
75
73
  'Rakefile',
76
- 'Gemfile',
77
- 'Gemfile.lock',
78
- 'Vagrantfile',
79
74
  'README.md',
80
75
  'CONTRIBUTORS',
81
76
  'CONTRIBUTING.md',
@@ -94,8 +89,7 @@ module PhusionPassenger
94
89
  'bin/*',
95
90
  'doc/**/*',
96
91
  'man/*',
97
- 'debian.template/**/*',
98
- 'packaging/**/*',
92
+ 'dev/**/*',
99
93
  'helper-scripts/**/*',
100
94
  'ext/common/**/*.{cpp,c,h,hpp,md,erb}',
101
95
  'ext/apache2/*.{cpp,h,hpp,c,erb}',
@@ -115,53 +109,45 @@ module PhusionPassenger
115
109
  'ext/oxt/*.txt',
116
110
  'ext/oxt/detail/*.hpp',
117
111
  'ext/ruby/*.{c,rb}',
118
- 'dev/**/*',
119
- 'resources/**/*',
120
- 'test/.rspec',
121
- 'test/*.example',
122
- 'test/*.travis',
123
- 'test/*.rpm-automation',
124
- 'test/*.vagrant',
125
- 'test/*.supp',
126
- 'test/support/*.{c,cpp,h,rb}',
127
- 'test/tut/*',
128
- 'test/cxx/**/*.{cpp,h}',
129
- 'test/oxt/*.{cpp,hpp}',
130
- 'test/ruby/**/*',
131
- 'test/node/**/*',
132
- 'test/integration_tests/**/*',
133
- 'test/stub/**/*',
134
- 'test/stub/**/.*'
112
+ 'resources/**/*'
135
113
  ]
136
114
 
115
+ # Files that should be excluded from the gem or tarball. Overrides GLOB.
137
116
  EXCLUDE_GLOB = [
138
117
  '**/.DS_Store',
139
- 'packaging/*/.git',
140
- 'test/stub/rails_apps/3.0/empty/help/**/*',
141
- 'test/stub/*.dSYM'
118
+ '.gitignore',
119
+ '.gitmodules',
120
+ '.travis.yml',
121
+ '.settings/*',
122
+ '.externalToolBuilders/*',
123
+ '.cproject',
124
+ '.project',
125
+ 'Gemfile',
126
+ 'Gemfile.lock',
127
+ 'Vagrantfile',
128
+ 'Passenger.sublime-project',
129
+ 'Passenger.xcodeproj/**/*',
130
+ 'debian.template/**/*',
131
+ 'packaging/**/*',
132
+ 'test/**/*'
142
133
  ]
143
134
 
144
135
  # Files that should be excluded from the Debian tarball.
145
- DEBIAN_EXCLUDE_GLOB = [
146
- "debian.template/**/*",
147
- "packaging/**/*",
148
- ]
136
+ DEBIAN_EXCLUDE_GLOB = []
149
137
 
150
138
  # Files and directories that should be excluded from the Homebrew installation.
151
139
  HOMEBREW_EXCLUDE = [
152
- ".gitignore", ".gitmodules", ".travis.yml", "package.json", "Vagrantfile",
153
- "npm-shrinkwrap.json", "Gemfile", "Gemfile.lock", "debian.template",
154
- "packaging", "dev", "test"
140
+ "package.json", "npm-shrinkwrap.json"
155
141
  ]
156
142
 
157
143
  def self.files
158
144
  result = Dir[*GLOB] - Dir[*EXCLUDE_GLOB]
159
145
  result.reject! { |path| path =~ %r{/\.\.?$} }
160
- return result
146
+ result
161
147
  end
162
148
 
163
149
  def self.debian_orig_tarball_files
164
- return files - Dir[*DEBIAN_EXCLUDE_GLOB]
150
+ files - Dir[*DEBIAN_EXCLUDE_GLOB]
165
151
  end
166
152
  end
167
153