Browse files

Update Enterprise documentation

[ci:skip]
  • Loading branch information...
1 parent 2d6ccdb commit 72a636145da63eaae3deb71c45976a2b2288ce7d @FooBarWidget FooBarWidget committed Jan 24, 2014
Showing with 22 additions and 5 deletions.
  1. +4 −0 NEWS
  2. +8 −2 doc/Users guide Apache.txt
  3. +8 −2 doc/Users guide Nginx.txt
  4. +2 −1 ext/common/ApplicationPool2/Group.h
View
4 NEWS
@@ -2,6 +2,10 @@ Release 4.0.36
--------------
* [Enterprise] Fixed some Mass Deployment bugs.
+ * [Enterprise] Fixed a bug that causes an application group to be put into
+ Deployment Error Resistance Mode if rolling restarting fails while
+ deployment error resistance is off. Deployment Error Resistance Mode is
+ now only activated if it's explicitly turned on.
* Passenger Standalone now gzips JSON responses.
* Fixed some cases in which Passenger Standalone does not to properly cleanup
its temporary files.
View
10 doc/Users guide Apache.txt
@@ -822,7 +822,12 @@ Rolling restarts have a few caveat however that you should be aware of:
been restarted. It is for this reason that you should not use rolling
restarts in development, only in production.
-Please note that this option is completely unrelated to the `passenger-config restart` command. That command always initiates a blocking restart, unless `--rolling-restart` is given.
+If Passenger Enterprise could not rolling restart a process (let's call it 'A') because it is unable to spawn a new process (let's call it 'B'), then Passenger Enterprise will give up trying to rolling restart that particular process 'A'. What happens next depends on whether <<PassengerResistDeploymentErrors,deployment error resistance>> is enabled:
+
+- If deployment error resistance is disabled (the default), then Passenger Enterprise will proceed with trying to restart the remaining processes.
+- If deployment error resistance is enabled, the Passenger Enterprise will give up rolling restarting immediately. The application group will be put into Deployment Error Resistance Mode.
+
+Please note that `PassengerRollingRestarts` is completely unrelated to the `passenger-config restart-app` command. That command always initiates a blocking restart, unless `--rolling-restart` is given.
This option may occur in the following places:
@@ -833,6 +838,7 @@ This option may occur in the following places:
In each place, it may be specified at most once. The default value is 'off'.
+[[PassengerResistDeploymentErrors]]
==== PassengerResistDeploymentErrors <on|off>
:version: 3.0.0
include::users_guide_snippets/enterprise_only.txt[]
@@ -845,7 +851,7 @@ By enabling deployment error resistance, Phusion Passenger Enterprise would inst
- It passes the request to one of the existing application processes (that belong to the previous version of the application). The visitor will not see a Phusion Passenger process spawning error message.
- It logs the error to the global web server error log file.
-- It sets an internal flag so that no processes for this application will be spawned (even when the current traffic would normally result in more processes being spawned) and no processes will be idle cleaned. Processes *could* still be shutdown because of other events, e.g. because their <<PassengerMemoryLimit,memory limit>> have been reached.
+- It sets an internal flag (Deployment Error Resistance Mode) so that no processes for this application will be spawned (even when the current traffic would normally result in more processes being spawned) and no processes will be idle cleaned. Processes *could* still be shutdown because of other events, e.g. because their <<PassengerMemoryLimit,memory limit>> have been reached. You can see whether the flag is set by invoking `passenger-status`. If you see the message "Resisting deployment error" then the flag is set.
This way, visitors will suffer minimally from deployment errors. Phusion Passenger will attempt to restart the application again next time restart.txt is touched.
View
10 doc/Users guide Nginx.txt
@@ -823,7 +823,12 @@ Rolling restarts have a few caveat however that you should be aware of:
been restarted. It is for this reason that you should not use rolling
restarts in development, only in production.
-Please note that this option is completely unrelated to the `passenger-config restart` command. That command always initiates a blocking restart, unless `--rolling-restart` is given.
+If Passenger Enterprise could not rolling restart a process (let's call it 'A') because it is unable to spawn a new process (let's call it 'B'), then Passenger Enterprise will give up trying to rolling restart that particular process 'A'. What happens next depends on whether <<PassengerResistDeploymentErrors,deployment error resistance>> is enabled:
+
+- If deployment error resistance is disabled (the default), then Passenger Enterprise will proceed with trying to restart the remaining processes.
+- If deployment error resistance is enabled, the Passenger Enterprise will give up rolling restarting immediately. The application group will be put into Deployment Error Resistance Mode.
+
+Please note that `passenger_rolling_restarts` is completely unrelated to the `passenger-config restart-app` command. That command always initiates a blocking restart, unless `--rolling-restart` is given.
This option may occur in the following places:
@@ -834,6 +839,7 @@ This option may occur in the following places:
In each place, it may be specified at most once. The default value is 'off'.
+[[PassengerResistDeploymentErrors]]
==== passenger_resist_deployment_errors <on|off>
:version: 3.0.0
include::users_guide_snippets/enterprise_only.txt[]
@@ -846,7 +852,7 @@ By enabling deployment error resistance, Phusion Passenger Enterprise would inst
- It passes the request to one of the existing application processes (that belong to the previous version of the application). The visitor will not see a Phusion Passenger process spawning error message.
- It logs the error to the global web server error log file.
-- It sets an internal flag so that no processes for this application will be spawned (even when the current traffic would normally result in more processes being spawned) and no processes will be idle cleaned. Processes *could* still be shutdown because of other events, e.g. because their <<PassengerMemoryLimit,memory limit>> have been reached.
+- It sets an internal flag so that no processes for this application will be spawned (even when the current traffic would normally result in more processes being spawned) and no processes will be idle cleaned. Processes *could* still be shutdown because of other events, e.g. because their <<PassengerMemoryLimit,memory limit>> have been reached. You can see whether the flag is set by invoking `passenger-status`. If you see the message "Resisting deployment error" then the flag is set.
This way, visitors will suffer minimally from deployment errors. Phusion Passenger will attempt to restart the application again next time restart.txt is touched.
View
3 ext/common/ApplicationPool2/Group.h
@@ -63,7 +63,8 @@ using namespace oxt;
* so only access within ApplicationPool lock.
*/
class Group: public boost::enable_shared_from_this<Group> {
-private:
+// Actually private, but marked public so that unit tests can access the fields.
+public:
friend class Pool;
friend class SuperGroup;

0 comments on commit 72a6361

Please sign in to comment.