passenger 3.0.15 → 3.0.17

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.

data/NEWS CHANGED
@@ -1,3 +1,25 @@
1
+ Release 3.0.17
2
+ --------------
3
+
4
+ * Fixed a Ruby 1.9 encoding-related bug in the memory measurer.
5
+ (Phusion Passenger Enterprise)
6
+ * Fixed OOM adjustment bugs on Linux.
7
+ * Fixed compilation problems on Fedora 18 and 19.
8
+ * Fixed compilation problems on SunOS.
9
+ * Fixed compilation problems on AIX. Contribution by Perry Smith.
10
+ * Fixed various compilation warnings.
11
+ * Upgraded preferred Nginx version to 1.2.3.
12
+
13
+ 3.0.16 was an unofficial hotfix release, and so its announcement had been skipped.
14
+
15
+
16
+ Release 3.0.15
17
+ --------------
18
+
19
+ * Updated documentation.
20
+ * Updated website links.
21
+
22
+
1
23
  Release 3.0.14
2
24
  --------------
3
25
 
@@ -2571,7 +2571,7 @@ if responses can be huge. Because entire responses are buffered in memory when t
2571
2571
  </div>
2572
2572
  <div class="sect2">
2573
2573
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="PassengerRollingRestarts" data-comment-topic="passengerrollingrestarts">5.11. PassengerRollingRestarts &lt;on|off&gt;</h3>
2574
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2574
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
2575
2575
  <div class="paragraph"><p>Enables or disables support for rolling restarts. Normally when you
2576
2576
  restart an application (by touching restart.txt), Phusion Passenger would
2577
2577
  shut down all application processes and spawn a new one. The spawning
@@ -2644,7 +2644,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
2644
2644
  </div>
2645
2645
  <div class="sect2">
2646
2646
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_passengerresistdeploymenterrors_lt_on_off_gt" data-comment-topic="passengerresistdeploymenterrors">5.12. PassengerResistDeploymentErrors &lt;on|off&gt;</h3>
2647
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2647
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
2648
2648
  <div class="paragraph"><p>Enables or disables resistance against deployment errors.</p></div>
2649
2649
  <div class="paragraph"><p>Suppose you’ve upgraded your application and you’ve issues a command to restart it (by touching restart.txt), but the application code contains an error that prevents Phusion Passenger from successfully spawning a process (e.g. a syntax error). Phusion Passenger would normally display an error message in response to this.</p></div>
2650
2650
  <div class="paragraph"><p>By enabling deployment error resistance, Phusion Passenger Enterprise would instead do this:</p></div>
@@ -2910,7 +2910,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> i
2910
2910
  </div>
2911
2911
  <div class="sect3">
2912
2912
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengermaxinstances_lt_integer_gt" data-comment-topic="passengermaxinstances">5.14.3. PassengerMaxInstances &lt;integer&gt;</h4>
2913
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2913
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
2914
2914
  <div class="paragraph"><p>The maximum number of application processes that may simultaneously exist
2915
2915
  for an application. This helps to make sure that a single application
2916
2916
  will not occupy all available slots in the application pool.</p></div>
@@ -3074,7 +3074,7 @@ measure to avoid memory leaks.</p></div>
3074
3074
  </div>
3075
3075
  <div class="sect3">
3076
3076
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMaxRequestTime" data-comment-topic="passengermaxrequesttime-seconds--7qnz3x">5.14.7. PassengerMaxRequestTime &lt;seconds&gt;</h4>
3077
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
3077
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3078
3078
  <div class="paragraph"><p>The maximum amount of time, in seconds, that an application process may take
3079
3079
  to process a request. If the request takes longer than this amount of time,
3080
3080
  then the application process will be forcefully shut down, and possibly
@@ -3143,7 +3143,7 @@ measure to avoid freezing applications.</p></div>
3143
3143
  </div>
3144
3144
  <div class="sect3">
3145
3145
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMemoryLimit" data-comment-topic="passengermemorylimit">5.14.8. PassengerMemoryLimit &lt;integer&gt;</h4>
3146
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
3146
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3147
3147
  <div class="paragraph"><p>The maximum amount of memory that an application process may use, in megabytes.
3148
3148
  Once an application process has surpassed its memory limit, it will process
3149
3149
  all the requests currently present in its queue and then shut down.
@@ -3745,7 +3745,7 @@ error messages should be written to instead.</p></div>
3745
3745
  </div>
3746
3746
  <div class="sect3">
3747
3747
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerdebugger_lt_on_off_gt" data-comment-topic="passengerdebugger-on-off--1lgdk7g">5.16.3. PassengerDebugger &lt;on|off&gt;</h4>
3748
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
3748
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3749
3749
  <div class="paragraph"><p>Turns support for application debugging on or off. In case of Ruby applications,
3750
3750
  turning this option on will cause them to load the <span class="monospaced">ruby-debug</span> gem (when on Ruby 1.8)
3751
3751
  or the <span class="monospaced">debugger</span> gem (when on Ruby 1.9). If you’re using Bundler, you should add
@@ -3935,7 +3935,7 @@ In a virtual host configuration block.
3935
3935
  </div>
3936
3936
  </div>
3937
3937
  <div class="sect2">
3938
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_rack_specific_options" data-comment-topic="rack-specific-options-wk9qzt">5.18. Rack-specific options</h3>
3938
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_rack_and_rails_gt_3_specific_options" data-comment-topic="rack-specific-options-wk9qzt">5.18. Rack and Rails &gt;= 3 specific options</h3>
3939
3939
  <div class="sect3">
3940
3940
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_rackautodetect_lt_on_off_gt" data-comment-topic="rackautodetect-on-off--vl1lxy">5.18.1. RackAutoDetect &lt;on|off&gt;</h4>
3941
3941
  <div class="paragraph"><p>Whether Phusion Passenger should automatically detect whether a virtual host’s
@@ -5647,7 +5647,7 @@ has no effect.</p></div>
5647
5647
  <div id="footnotes"><hr></div>
5648
5648
  <div id="footer">
5649
5649
  <div id="footer-text">
5650
- Last updated 2012-08-01 13:31:01 CEST
5650
+ Last updated 2012-08-28 11:03:54 CEST
5651
5651
  </div>
5652
5652
  </div>
5653
5653
  <script>/*! jQuery v1.7.1 jquery.com | jquery.org/license */
@@ -192,7 +192,7 @@
192
192
 
193
193
  5.17.5. RailsAppSpawnerIdleTime <integer> => railsappspawneridletime-integer--1awgog1
194
194
 
195
- 5.18. Rack-specific options => rack-specific-options-wk9qzt
195
+ 5.18. Rack and Rails >= 3 specific options => rack-specific-options-wk9qzt
196
196
 
197
197
  5.18.1. RackAutoDetect <on|off> => rackautodetect-on-off--vl1lxy
198
198
 
@@ -982,7 +982,8 @@ if responses can be huge. Because entire responses are buffered in memory when t
982
982
 
983
983
  [[PassengerRollingRestarts]]
984
984
  === PassengerRollingRestarts <on|off> ===
985
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
985
+ :version: 3.0.0
986
+ include::users_guide_snippets/enterprise_only.txt[]
986
987
 
987
988
  Enables or disables support for rolling restarts. Normally when you
988
989
  restart an application (by touching restart.txt), Phusion Passenger would
@@ -1021,7 +1022,8 @@ This option may occur in the following places:
1021
1022
  In each place, it may be specified at most once. The default value is 'off'.
1022
1023
 
1023
1024
  === PassengerResistDeploymentErrors <on|off> ===
1024
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1025
+ :version: 3.0.0
1026
+ include::users_guide_snippets/enterprise_only.txt[]
1025
1027
 
1026
1028
  Enables or disables resistance against deployment errors.
1027
1029
 
@@ -1204,7 +1206,8 @@ The PassengerMinInstances option may occur in the following places:
1204
1206
  In each place, it may be specified at most once. The default value is '1'.
1205
1207
 
1206
1208
  ==== PassengerMaxInstances <integer> ====
1207
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1209
+ :version: 3.0.0
1210
+ include::users_guide_snippets/enterprise_only.txt[]
1208
1211
 
1209
1212
  The maximum number of application processes that may simultaneously exist
1210
1213
  for an application. This helps to make sure that a single application
@@ -1337,7 +1340,8 @@ measure to avoid memory leaks.
1337
1340
 
1338
1341
  [[PassengerMaxRequestTime]]
1339
1342
  ==== PassengerMaxRequestTime <seconds> ====
1340
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1343
+ :version: 3.0.0
1344
+ include::users_guide_snippets/enterprise_only.txt[]
1341
1345
 
1342
1346
  The maximum amount of time, in seconds, that an application process may take
1343
1347
  to process a request. If the request takes longer than this amount of time,
@@ -1387,7 +1391,8 @@ measure to avoid freezing applications.
1387
1391
 
1388
1392
  [[PassengerMemoryLimit]]
1389
1393
  ==== PassengerMemoryLimit <integer> ====
1390
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1394
+ :version: 3.0.0
1395
+ include::users_guide_snippets/enterprise_only.txt[]
1391
1396
 
1392
1397
  The maximum amount of memory that an application process may use, in megabytes.
1393
1398
  Once an application process has surpassed its memory limit, it will process
@@ -1844,7 +1849,8 @@ error messages should be written to instead.
1844
1849
  This option may only occur once, in the global server configuration.
1845
1850
 
1846
1851
  ==== PassengerDebugger <on|off> ====
1847
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1852
+ :version: 3.0.0
1853
+ include::users_guide_snippets/enterprise_only.txt[]
1848
1854
 
1849
1855
  Turns support for application debugging on or off. In case of Ruby applications,
1850
1856
  turning this option on will cause them to load the `ruby-debug` gem (when on Ruby 1.8)
@@ -1979,7 +1985,7 @@ This option may occur in the following places:
1979
1985
 
1980
1986
  In each place, it may be specified at most once. The default value is '600' (10 minutes).
1981
1987
 
1982
- === Rack-specific options ===
1988
+ === Rack and Rails >= 3 specific options ===
1983
1989
 
1984
1990
  ==== RackAutoDetect <on|off> ====
1985
1991
  Whether Phusion Passenger should automatically detect whether a virtual host's
@@ -1990,7 +1990,7 @@ In an <em>if</em> configuration scope.
1990
1990
  </div>
1991
1991
  <div class="sect2">
1992
1992
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="PassengerRollingRestarts" data-comment-topic="passenger-rolling-restarts">5.4. passenger_rolling_restarts &lt;on|off&gt;</h3>
1993
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
1993
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
1994
1994
  <div class="paragraph"><p>Enables or disables support for rolling restarts. Normally when you
1995
1995
  restart an application (by touching restart.txt), Phusion Passenger would
1996
1996
  shut down all application processes and spawn a new one. The spawning
@@ -2063,7 +2063,7 @@ In an <em>if</em> configuration scope.
2063
2063
  </div>
2064
2064
  <div class="sect2">
2065
2065
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_passenger_resist_deployment_errors_lt_on_off_gt" data-comment-topic="passenger-resist-deployment-errors-on-off--k9yf1">5.5. passenger_resist_deployment_errors &lt;on|off&gt;</h3>
2066
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2066
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
2067
2067
  <div class="paragraph"><p>Enables or disables resistance against deployment errors.</p></div>
2068
2068
  <div class="paragraph"><p>Suppose you’ve upgraded your application and you’ve issues a command to restart it (by touching restart.txt), but the application code contains an error that prevents Phusion Passenger from successfully spawning a process (e.g. a syntax error). Phusion Passenger would normally display an error message in response to this.</p></div>
2069
2069
  <div class="paragraph"><p>By enabling deployment error resistance, Phusion Passenger Enterprise would instead do this:</p></div>
@@ -2709,7 +2709,7 @@ In an <em>if</em> configuration scope.
2709
2709
  </div>
2710
2710
  <div class="sect3">
2711
2711
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passenger_max_instances_lt_integer_gt" data-comment-topic="passenger-max-instances">5.9.3. passenger_max_instances &lt;integer&gt;</h4>
2712
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2712
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
2713
2713
  <div class="paragraph"><p>The maximum number of application processes that may simultaneously exist
2714
2714
  for an application. This helps to make sure that a single application
2715
2715
  will not occupy all available slots in the application pool.</p></div>
@@ -2842,7 +2842,7 @@ measure to avoid memory leaks.</p></div>
2842
2842
  </div>
2843
2843
  <div class="sect3">
2844
2844
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMaxRequestTime" data-comment-topic="passenger-max-request-time-seconds--1qod9kg">5.9.7. passenger_max_request_time &lt;seconds&gt;</h4>
2845
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2845
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
2846
2846
  <div class="paragraph"><p>The maximum amount of time, in seconds, that an application process may take
2847
2847
  to process a request. If the request takes longer than this amount of time,
2848
2848
  then the application process will be forcefully shut down, and possibly
@@ -3255,7 +3255,7 @@ error messages should be written to instead.</p></div>
3255
3255
  </div>
3256
3256
  <div class="sect3">
3257
3257
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passenger_debugger_lt_on_off_gt" data-comment-topic="passenger-debugger-on-off--1wkuq85">5.10.3. passenger_debugger &lt;on|off&gt;</h4>
3258
- <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
3258
+ <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3259
3259
  <div class="paragraph"><p>Turns support for application debugging on or off. In case of Ruby applications,
3260
3260
  turning this option on will cause them to load the <span class="monospaced">ruby-debug</span> gem (when on Ruby 1.8)
3261
3261
  or the <span class="monospaced">debugger</span> gem (when on Ruby 1.9). If you’re using Bundler, you should add
@@ -3403,7 +3403,7 @@ In an <em>if</em> configuration scope.
3403
3403
  </div>
3404
3404
  </div>
3405
3405
  <div class="sect2">
3406
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_rack_specific_options" data-comment-topic="rack-specific-options-13yvdxs">5.12. Rack-specific options</h3>
3406
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_rack_and_rails_gt_3_specific_options" data-comment-topic="rack-specific-options-13yvdxs">5.12. Rack and Rails &gt;= 3 specific options</h3>
3407
3407
  <div class="sect3">
3408
3408
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="RackEnv" data-comment-topic="rack-env-string--tqmrt0">5.12.1. rack_env &lt;string&gt;</h4>
3409
3409
  <div class="paragraph"><p>This option allows one to specify the default <span class="monospaced">RACK_ENV</span> value.</p></div>
@@ -4473,7 +4473,7 @@ has no effect.</p></div>
4473
4473
  <div id="footnotes"><hr></div>
4474
4474
  <div id="footer">
4475
4475
  <div id="footer-text">
4476
- Last updated 2012-08-01 13:31:01 CEST
4476
+ Last updated 2012-08-28 11:03:54 CEST
4477
4477
  </div>
4478
4478
  </div>
4479
4479
  <script>/*! jQuery v1.7.1 jquery.com | jquery.org/license */
@@ -122,7 +122,7 @@
122
122
 
123
123
  5.11.3. rails_app_spawner_idle_time <integer> => rails-app-spawner-idle-time-integer--1xjqe4b
124
124
 
125
- 5.12. Rack-specific options => rack-specific-options-13yvdxs
125
+ 5.12. Rack and Rails >= 3 specific options => rack-specific-options-13yvdxs
126
126
 
127
127
  5.12.1. rack_env <string> => rack-env-string--tqmrt0
128
128
 
@@ -645,7 +645,8 @@ In each place, it may be specified at most once. The default value is 'smart-lv2
645
645
 
646
646
  [[PassengerRollingRestarts]]
647
647
  === passenger_rolling_restarts <on|off> ===
648
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
648
+ :version: 3.0.0
649
+ include::users_guide_snippets/enterprise_only.txt[]
649
650
 
650
651
  Enables or disables support for rolling restarts. Normally when you
651
652
  restart an application (by touching restart.txt), Phusion Passenger would
@@ -684,7 +685,8 @@ This option may occur in the following places:
684
685
  In each place, it may be specified at most once. The default value is 'off'.
685
686
 
686
687
  === passenger_resist_deployment_errors <on|off> ===
687
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
688
+ :version: 3.0.0
689
+ include::users_guide_snippets/enterprise_only.txt[]
688
690
 
689
691
  Enables or disables resistance against deployment errors.
690
692
 
@@ -1060,7 +1062,8 @@ The passenger_min_instances option may occur in the following places:
1060
1062
  In each place, it may be specified at most once. The default value is '1'.
1061
1063
 
1062
1064
  ==== passenger_max_instances <integer> ====
1063
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1065
+ :version: 3.0.0
1066
+ include::users_guide_snippets/enterprise_only.txt[]
1064
1067
 
1065
1068
  The maximum number of application processes that may simultaneously exist
1066
1069
  for an application. This helps to make sure that a single application
@@ -1161,7 +1164,8 @@ measure to avoid memory leaks.
1161
1164
 
1162
1165
  [[PassengerMaxRequestTime]]
1163
1166
  ==== passenger_max_request_time <seconds> ====
1164
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1167
+ :version: 3.0.0
1168
+ include::users_guide_snippets/enterprise_only.txt[]
1165
1169
 
1166
1170
  The maximum amount of time, in seconds, that an application process may take
1167
1171
  to process a request. If the request takes longer than this amount of time,
@@ -1485,7 +1489,8 @@ error messages should be written to instead.
1485
1489
  This option may only occur once, in the 'http' configuration block.
1486
1490
 
1487
1491
  ==== passenger_debugger <on|off> ====
1488
- **Available in Phusion Passenger Enterprise since version 3.0.0.**
1492
+ :version: 3.0.0
1493
+ include::users_guide_snippets/enterprise_only.txt[]
1489
1494
 
1490
1495
  Turns support for application debugging on or off. In case of Ruby applications,
1491
1496
  turning this option on will cause them to load the `ruby-debug` gem (when on Ruby 1.8)
@@ -1575,7 +1580,7 @@ This option may occur in the following places:
1575
1580
 
1576
1581
  In each place, it may be specified at most once. The default value is '600' (10 minutes).
1577
1582
 
1578
- === Rack-specific options ===
1583
+ === Rack and Rails >= 3 specific options ===
1579
1584
  [[RackEnv]]
1580
1585
  ==== rack_env <string> ====
1581
1586
  This option allows one to specify the default `RACK_ENV` value.
@@ -0,0 +1 @@
1
+ **This feature is only available in link:https://www.phusionpassenger.com/enterprise[Phusion Passenger Enterprise]. It was introduced in version {version}. link:https://www.phusionpassenger.com/download[Buy Phusion Passenger Enterprise here.]**
@@ -36,6 +36,7 @@
36
36
 
37
37
  #include "Configuration.hpp"
38
38
  #include "Utils.h"
39
+ #include "Constants.h"
39
40
  #include <LoggingAgent/FilterSupport.h>
40
41
 
41
42
  /* The APR headers must come after the Passenger headers. See Hooks.cpp
@@ -317,6 +318,15 @@ DEFINE_DIR_THREEWAY_CONFIG_SETTER(cmd_passenger_friendly_error_pages, friendlyEr
317
318
  DEFINE_DIR_THREEWAY_CONFIG_SETTER(cmd_union_station_support, unionStationSupport)
318
319
  DEFINE_DIR_THREEWAY_CONFIG_SETTER(cmd_passenger_buffer_response, bufferResponse)
319
320
 
321
+ #ifndef PASSENGER_IS_ENTERPRISE
322
+ static const char *
323
+ cmd_passenger_enterprise_only(cmd_parms *cmd, void *pcfg, const char *arg) {
324
+ return "this feature is only available in Phusion Passenger Enterprise. "
325
+ "You are currently running the open source Phusion Passenger Enterprise. "
326
+ "Please learn more about and/or buy Phusion Passenger Enterprise at https://www.phusionpassenger.com/enterprise";
327
+ }
328
+ #endif
329
+
320
330
  static const char *
321
331
  cmd_passenger_spawn_method(cmd_parms *cmd, void *pcfg, const char *arg) {
322
332
  DirConfig *config = (DirConfig *) pcfg;
@@ -671,6 +681,36 @@ const command_rec passenger_commands[] = {
671
681
  "Whether to enable logging through Union Station."),
672
682
 
673
683
  /*****************************/
684
+ AP_INIT_TAKE1("PassengerMemoryLimit",
685
+ (Take1Func) cmd_passenger_enterprise_only,
686
+ NULL,
687
+ OR_LIMIT | ACCESS_CONF | RSRC_CONF,
688
+ "The maximum amount of memory in MB that an application instance may use."),
689
+ AP_INIT_TAKE1("PassengerMaxInstances",
690
+ (Take1Func) cmd_passenger_enterprise_only,
691
+ NULL,
692
+ OR_LIMIT | ACCESS_CONF | RSRC_CONF,
693
+ "The maximum number of instances for the current application that Passenger may spawn."),
694
+ AP_INIT_TAKE1("PassengerMaxRequestTime",
695
+ (Take1Func) cmd_passenger_enterprise_only,
696
+ NULL,
697
+ OR_ALL,
698
+ "The maximum time (in seconds) that the current application may spend on a request."),
699
+ AP_INIT_FLAG("PassengerRollingRestarts",
700
+ (FlagFunc) cmd_passenger_enterprise_only,
701
+ NULL,
702
+ OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
703
+ "Whether to turn on rolling restarts"),
704
+ AP_INIT_FLAG("PassengerResistDeploymentErrors",
705
+ (FlagFunc) cmd_passenger_enterprise_only,
706
+ NULL,
707
+ OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
708
+ "Whether to turn on deployment error resistance"),
709
+ AP_INIT_FLAG("PassengerDebugger",
710
+ (FlagFunc) cmd_passenger_enterprise_only,
711
+ NULL,
712
+ OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
713
+ "Whether to turn on debugger support"),
674
714
 
675
715
  // Rails-specific settings.
676
716
  AP_INIT_TAKE1("RailsBaseURI",
@@ -491,14 +491,14 @@ private:
491
491
  len = strlen(filename);
492
492
  if (len > 0 && filename[len - 1] == '/') {
493
493
  pageCacheFile = apr_pstrcat(r->pool, filename,
494
- "index.html", NULL);
494
+ "index.html", (char *) NULL);
495
495
  } else {
496
496
  pageCacheFile = apr_pstrcat(r->pool, filename,
497
- ".html", NULL);
497
+ ".html", (char *) NULL);
498
498
  }
499
499
  } else {
500
500
  pageCacheFile = apr_pstrcat(r->pool, filename,
501
- ".html", NULL);
501
+ ".html", (char *) NULL);
502
502
  }
503
503
  if (!fileExists(pageCacheFile)) {
504
504
  pageCacheFile = NULL;
@@ -948,7 +948,7 @@ private:
948
948
  * Convert an HTTP header name to a CGI environment name.
949
949
  */
950
950
  char *httpToEnv(apr_pool_t *p, const char *headerName) {
951
- char *result = apr_pstrcat(p, "HTTP_", headerName, NULL);
951
+ char *result = apr_pstrcat(p, "HTTP_", headerName, (char *) NULL);
952
952
  char *current = result + sizeof("HTTP_") - 1;
953
953
 
954
954
  while (*current != '\0') {
@@ -1049,7 +1049,7 @@ private:
1049
1049
  } else {
1050
1050
  const char *request_uri;
1051
1051
  if (r->args != NULL) {
1052
- request_uri = apr_pstrcat(r->pool, escapedUri, "?", r->args, NULL);
1052
+ request_uri = apr_pstrcat(r->pool, escapedUri, "?", r->args, (char *) NULL);
1053
1053
  } else {
1054
1054
  request_uri = escapedUri;
1055
1055
  }
@@ -102,6 +102,18 @@
102
102
  # define BOOST_HAS_STATIC_ASSERT
103
103
  #endif
104
104
 
105
+ //
106
+ // constexpr workarounds
107
+ //
108
+ #if defined(BOOST_NO_CONSTEXPR)
109
+ #define BOOST_CONSTEXPR
110
+ #define BOOST_CONSTEXPR_OR_CONST const
111
+ #else
112
+ #define BOOST_CONSTEXPR constexpr
113
+ #define BOOST_CONSTEXPR_OR_CONST constexpr
114
+ #endif
115
+ #define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
116
+
105
117
  //
106
118
  // if there is no __int64 then there is no specialisation
107
119
  // for numeric_limits<__int64> either:
@@ -365,7 +365,7 @@ namespace boost
365
365
  cond.timed_wait(lock, xt);
366
366
  # endif
367
367
  xtime cur;
368
- xtime_get(&cur, TIME_UTC);
368
+ xtime_get(&cur, TIME_UTC_);
369
369
  if (xtime_cmp(xt, cur) <= 0)
370
370
  return;
371
371
  }
@@ -380,7 +380,7 @@ namespace boost
380
380
  BOOST_VERIFY(!pthread_yield());
381
381
  # else
382
382
  xtime xt;
383
- xtime_get(&xt, TIME_UTC);
383
+ xtime_get(&xt, TIME_UTC_);
384
384
  sleep(xt);
385
385
  # endif
386
386
  }
@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND = 1000;
20
20
  inline void to_time(int milliseconds, boost::xtime& xt)
21
21
  {
22
22
  int res = 0;
23
- res = boost::xtime_get(&xt, boost::TIME_UTC);
24
- BOOST_ASSERT(res == boost::TIME_UTC);
23
+ res = boost::xtime_get(&xt, boost::TIME_UTC_);
24
+ BOOST_ASSERT(res == boost::TIME_UTC_);
25
25
 
26
26
  xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
27
27
  xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
@@ -57,8 +57,8 @@ inline void to_timespec_duration(const boost::xtime& xt, timespec& ts)
57
57
  {
58
58
  boost::xtime cur;
59
59
  int res = 0;
60
- res = boost::xtime_get(&cur, boost::TIME_UTC);
61
- BOOST_ASSERT(res == boost::TIME_UTC);
60
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
61
+ BOOST_ASSERT(res == boost::TIME_UTC_);
62
62
 
63
63
  if (boost::xtime_cmp(xt, cur) <= 0)
64
64
  {
@@ -88,8 +88,8 @@ inline void to_duration(boost::xtime xt, int& milliseconds)
88
88
  {
89
89
  boost::xtime cur;
90
90
  int res = 0;
91
- res = boost::xtime_get(&cur, boost::TIME_UTC);
92
- BOOST_ASSERT(res == boost::TIME_UTC);
91
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
92
+ BOOST_ASSERT(res == boost::TIME_UTC_);
93
93
 
94
94
  if (boost::xtime_cmp(xt, cur) <= 0)
95
95
  milliseconds = 0;
@@ -110,8 +110,8 @@ inline void to_microduration(boost::xtime xt, int& microseconds)
110
110
  {
111
111
  boost::xtime cur;
112
112
  int res = 0;
113
- res = boost::xtime_get(&cur, boost::TIME_UTC);
114
- BOOST_ASSERT(res == boost::TIME_UTC);
113
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
114
+ BOOST_ASSERT(res == boost::TIME_UTC_);
115
115
 
116
116
  if (boost::xtime_cmp(xt, cur) <= 0)
117
117
  microseconds = 0;
@@ -164,9 +164,9 @@ namespace boost
164
164
  struct adopt_lock_t
165
165
  {};
166
166
 
167
- const defer_lock_t defer_lock={};
168
- const try_to_lock_t try_to_lock={};
169
- const adopt_lock_t adopt_lock={};
167
+ BOOST_CONSTEXPR_OR_CONST defer_lock_t defer_lock={};
168
+ BOOST_CONSTEXPR_OR_CONST try_to_lock_t try_to_lock={};
169
+ BOOST_CONSTEXPR_OR_CONST adopt_lock_t adopt_lock={};
170
170
 
171
171
  template<typename Mutex>
172
172
  class shared_lock;
@@ -20,7 +20,7 @@ namespace boost {
20
20
 
21
21
  enum xtime_clock_types
22
22
  {
23
- TIME_UTC=1
23
+ TIME_UTC_=1
24
24
  // TIME_TAI,
25
25
  // TIME_MONOTONIC,
26
26
  // TIME_PROCESS,
@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_time const& abs_time)
68
68
 
69
69
  inline int xtime_get(struct xtime* xtp, int clock_type)
70
70
  {
71
- if (clock_type == TIME_UTC)
71
+ if (clock_type == TIME_UTC_)
72
72
  {
73
73
  *xtp=get_xtime(get_system_time());
74
74
  return clock_type;
@@ -718,7 +718,7 @@ private:
718
718
  }
719
719
  } else {
720
720
  xtime xt;
721
- xtime_get(&xt, TIME_UTC);
721
+ xtime_get(&xt, TIME_UTC_);
722
722
  xt.sec += maxIdleTime + 1;
723
723
  if (cleanerThreadSleeper.timed_wait(l, xt)) {
724
724
  // Condition was woken up.
@@ -26,7 +26,7 @@
26
26
  #define _PASSENGER_CONSTANTS_H_
27
27
 
28
28
  /* Don't forget to update lib/phusion_passenger.rb too. */
29
- #define PASSENGER_VERSION "3.0.15"
29
+ #define PASSENGER_VERSION "3.0.17"
30
30
 
31
31
  #define FEEDBACK_FD 3
32
32
 
@@ -149,7 +149,7 @@ protected:
149
149
  ifstream iniFileStream;
150
150
 
151
151
  char lastAcceptedChar;
152
- char upcomingChar;
152
+ int upcomingChar;
153
153
  bool upcomingTokenPtrIsStale;
154
154
 
155
155
  int currentLine;
@@ -158,7 +158,7 @@ protected:
158
158
  TokenPtr upcomingTokenPtr;
159
159
 
160
160
  void expect(char ch) {
161
- char upcomingChar = (char)iniFileStream.peek();
161
+ int upcomingChar = iniFileStream.peek();
162
162
 
163
163
  if (ch != upcomingChar) {
164
164
  switch(upcomingChar) {
@@ -176,10 +176,10 @@ protected:
176
176
  }
177
177
 
178
178
  void accept() {
179
- if ((int) upcomingChar == EOF) return;
179
+ if (upcomingChar == EOF) return;
180
180
 
181
181
  lastAcceptedChar = (char)iniFileStream.get();
182
- upcomingChar = (char)iniFileStream.peek();
182
+ upcomingChar = iniFileStream.peek();
183
183
  currentColumn++;
184
184
 
185
185
  if (lastAcceptedChar == '\n') {
@@ -189,9 +189,9 @@ protected:
189
189
  }
190
190
 
191
191
  void ignore() {
192
- if ((int) upcomingChar == EOF) return;
192
+ if (upcomingChar == EOF) return;
193
193
 
194
- upcomingChar = (char)iniFileStream.peek();
194
+ upcomingChar = iniFileStream.peek();
195
195
  currentColumn++;
196
196
 
197
197
  if ((char)iniFileStream.get() == '\n') {
@@ -261,7 +261,7 @@ protected:
261
261
  int column = currentColumn;
262
262
  string result;
263
263
 
264
- while (upcomingChar != '\n' && (int) upcomingChar != EOF) {
264
+ while (upcomingChar != '\n' && upcomingChar != EOF) {
265
265
  result.append(1, upcomingChar);
266
266
  accept();
267
267
  }
@@ -282,7 +282,7 @@ protected:
282
282
  int column = currentColumn;
283
283
  string result;
284
284
 
285
- while ((int) upcomingChar != EOF) {
285
+ while (upcomingChar != EOF) {
286
286
  result.append(1, upcomingChar);
287
287
  accept();
288
288
  }
@@ -332,7 +332,7 @@ public:
332
332
  }
333
333
 
334
334
  while (iniFileStream.good()) {
335
- upcomingChar = (char)iniFileStream.peek();
335
+ upcomingChar = iniFileStream.peek();
336
336
  switch(upcomingChar) {
337
337
  case '[':
338
338
  return tokenizeSection();
@@ -780,7 +780,7 @@ private:
780
780
  }
781
781
 
782
782
  bool isDirectory(const string &dir, struct dirent *entry) const {
783
- #ifdef __sun__
783
+ #if defined(__sun__) || defined(_AIX)
784
784
  string path = dir;
785
785
  path.append("/");
786
786
  path.append(entry->d_name);
@@ -389,14 +389,14 @@ public:
389
389
  unsigned int ret;
390
390
  try {
391
391
  ret = Passenger::readExact(fd, buf, size, &t);
392
- #if defined(__NetBSD__) || defined(__OpenBSD__)
392
+ #if defined(__NetBSD__) || defined(__OpenBSD__) || defined(_AIX)
393
393
  *timeout = llround((double) t / 1000);
394
394
  #else
395
395
  *timeout = llroundl((long double) t / 1000);
396
396
  #endif
397
397
  return ret == size;
398
398
  } catch (...) {
399
- #if defined(__NetBSD__) || defined(__OpenBSD__)
399
+ #if defined(__NetBSD__) || defined(__OpenBSD__) || defined(_AIX)
400
400
  *timeout = llround((double) t / 1000);
401
401
  #else
402
402
  *timeout = llroundl((long double) t / 1000);
@@ -800,7 +800,7 @@ setOomScore(const StaticString &score) {
800
800
  FILE *f;
801
801
  OomFileType type;
802
802
 
803
- f = openOomAdjFile("r", type);
803
+ f = openOomAdjFile("w", type);
804
804
  if (f != NULL) {
805
805
  fwrite(score.data(), 1, score.size(), f);
806
806
  fclose(f);
@@ -905,6 +905,15 @@ peers:
905
905
  return NGX_CONF_OK;
906
906
  }
907
907
 
908
+ #ifndef PASSENGER_IS_ENTERPRISE
909
+ static char *
910
+ passenger_enterprise_only(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) {
911
+ return ": this feature is only available in Phusion Passenger Enterprise. "
912
+ "You are currently running the open source Phusion Passenger Enterprise. "
913
+ "Please learn more about and/or buy Phusion Passenger Enterprise at https://www.phusionpassenger.com/enterprise ;";
914
+ }
915
+ #endif
916
+
908
917
  static char *
909
918
  passenger_enabled(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
910
919
  {
@@ -1380,6 +1389,42 @@ const ngx_command_t passenger_commands[] = {
1380
1389
  NULL },
1381
1390
 
1382
1391
  /************************************/
1392
+
1393
+ { ngx_string("passenger_max_instances"),
1394
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
1395
+ passenger_enterprise_only,
1396
+ NGX_HTTP_LOC_CONF_OFFSET,
1397
+ 0,
1398
+ NULL },
1399
+
1400
+ { ngx_string("passenger_max_request_time"),
1401
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
1402
+ passenger_enterprise_only,
1403
+ NGX_HTTP_LOC_CONF_OFFSET,
1404
+ 0,
1405
+ NULL },
1406
+
1407
+ { ngx_string("passenger_memory_limit"),
1408
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
1409
+ passenger_enterprise_only,
1410
+ NGX_HTTP_LOC_CONF_OFFSET,
1411
+ 0,
1412
+ NULL },
1413
+
1414
+ { ngx_string("passenger_rolling_restarts"),
1415
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
1416
+ passenger_enterprise_only,
1417
+ NGX_HTTP_LOC_CONF_OFFSET,
1418
+ 0,
1419
+ NULL },
1420
+
1421
+ { ngx_string("passenger_resist_deployment_errors"),
1422
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
1423
+ passenger_enterprise_only,
1424
+ NGX_HTTP_LOC_CONF_OFFSET,
1425
+ 0,
1426
+ NULL },
1427
+
1383
1428
  /************************************/
1384
1429
 
1385
1430
  /******** Backward compatibility options ********/
@@ -25,10 +25,10 @@ module PhusionPassenger
25
25
  ###### Version numbers ######
26
26
 
27
27
  # Phusion Passenger version number. Don't forget to edit ext/common/Constants.h too.
28
- VERSION_STRING = '3.0.15'
28
+ VERSION_STRING = '3.0.17'
29
29
 
30
- PREFERRED_NGINX_VERSION = '1.2.2'
31
- PREFERRED_PCRE_VERSION = '8.30'
30
+ PREFERRED_NGINX_VERSION = '1.2.3'
31
+ PREFERRED_PCRE_VERSION = '8.31'
32
32
  STANDALONE_INTERFACE_VERSION = 1
33
33
 
34
34
 
@@ -52,6 +52,7 @@ module PlatformInfo
52
52
  end
53
53
 
54
54
  def self.compiler_supports_visibility_flag?
55
+ return false if RUBY_PLATFORM =~ /aix/
55
56
  return try_compile(:c, '', '-fvisibility=hidden')
56
57
  end
57
58
  memoize :compiler_supports_visibility_flag?, true
@@ -150,12 +151,12 @@ module PlatformInfo
150
151
  flags << '-D_XOPEN_SOURCE=500 -D_XPG4_2 -D__EXTENSIONS__ -D__SOLARIS__ -D_FILE_OFFSET_BITS=64'
151
152
  flags << '-D__SOLARIS9__ -DBOOST__STDC_CONSTANT_MACROS_DEFINED' if RUBY_PLATFORM =~ /solaris2.9/
152
153
  end
153
- flags << '-D_XOPEN_SOURCE=500 -D_XPG4_2 -D__EXTENSIONS__ -D__SOLARIS__ -D_FILE_OFFSET_BITS=64'
154
154
  flags << '-DBOOST_HAS_STDINT_H' unless RUBY_PLATFORM =~ /solaris2.9/
155
155
  flags << '-mcpu=ultrasparc' if RUBY_PLATFORM =~ /sparc/
156
156
  elsif RUBY_PLATFORM =~ /openbsd/
157
157
  flags << '-DBOOST_HAS_STDINT_H -D_GLIBCPP__PTHREADS'
158
158
  elsif RUBY_PLATFORM =~ /aix/
159
+ flags << '-pthread'
159
160
  flags << '-DOXT_DISABLE_BACKTRACES'
160
161
  elsif RUBY_PLATFORM =~ /(sparc-linux|arm-linux|^arm.*-linux|sh4-linux)/
161
162
  # http://code.google.com/p/phusion-passenger/issues/detail?id=200
@@ -69,15 +69,9 @@ static int setenv(const char *name, const char *value, int override) {
69
69
  typedef factory::object object; \
70
70
  factory name## _group(#name)
71
71
 
72
- #ifdef __clang__
73
- #define TEST_METHOD(i) \
74
- template<> \
75
- void object::test<i>()
76
- #else
77
- #define TEST_METHOD(i) \
78
- template<> template<> \
79
- void object::test<i>()
80
- #endif
72
+ #define TEST_METHOD(i) \
73
+ template<> template<> \
74
+ void object::test<i>()
81
75
 
82
76
  /**
83
77
  * Template Unit Tests Framework for C++.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 37
5
5
  prerelease:
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
- - 15
10
- version: 3.0.15
9
+ - 17
10
+ version: 3.0.17
11
11
  platform: ruby
12
12
  authors:
13
13
  - Phusion - http://www.phusion.nl/
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-08-01 00:00:00 Z
18
+ date: 2012-08-28 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
@@ -285,6 +285,7 @@ files:
285
285
  - doc/users_guide_snippets/appendix_a_about.txt
286
286
  - doc/users_guide_snippets/appendix_b_terminology.txt
287
287
  - doc/users_guide_snippets/appendix_c_spawning_methods.txt
288
+ - doc/users_guide_snippets/enterprise_only.txt
288
289
  - doc/users_guide_snippets/global_queueing_explained.txt
289
290
  - doc/users_guide_snippets/passenger_spawn_method.txt
290
291
  - doc/users_guide_snippets/rackup_specifications.txt