Author: nnielsen
Date: Thu Oct 29 17:55:21 2015
New Revision: 1711312
URL: http://svn.apache.org/viewvc?rev=1711312&view=rev
Log:
Added Polish MUG to community list.
Documentation and pending updates (such as Kapil's committership) went into
this commit as well.
Modified:
mesos/site/publish/community/user-groups/index.html
mesos/site/publish/documentation/committers/index.html
mesos/site/publish/documentation/configuration/index.html
mesos/site/publish/documentation/containerizer/index.html
mesos/site/publish/documentation/docker-containerizer/index.html
mesos/site/publish/documentation/fetcher/index.html
mesos/site/publish/documentation/latest/committers/index.html
mesos/site/publish/documentation/latest/configuration/index.html
mesos/site/publish/documentation/latest/containerizer/index.html
mesos/site/publish/documentation/latest/docker-containerizer/index.html
mesos/site/publish/documentation/latest/fetcher/index.html
mesos/site/publish/documentation/latest/oversubscription/index.html
mesos/site/publish/documentation/latest/ssl/index.html
mesos/site/publish/documentation/latest/submitting-a-patch/index.html
mesos/site/publish/documentation/latest/testing-patterns/index.html
mesos/site/publish/documentation/latest/upgrades/index.html
mesos/site/publish/documentation/oversubscription/index.html
mesos/site/publish/documentation/ssl/index.html
mesos/site/publish/documentation/submitting-a-patch/index.html
mesos/site/publish/documentation/testing-patterns/index.html
mesos/site/publish/documentation/upgrades/index.html
mesos/site/publish/sitemap.xml
mesos/site/source/community/user-groups.html.md
mesos/site/source/documentation/latest/committers.md
mesos/site/source/documentation/latest/configuration.md
mesos/site/source/documentation/latest/containerizer.md
mesos/site/source/documentation/latest/docker-containerizer.md
mesos/site/source/documentation/latest/fetcher.md
mesos/site/source/documentation/latest/oversubscription.md
mesos/site/source/documentation/latest/ssl.md
mesos/site/source/documentation/latest/submitting-a-patch.md
mesos/site/source/documentation/latest/testing-patterns.md
mesos/site/source/documentation/latest/upgrades.md
Modified: mesos/site/publish/community/user-groups/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/community/user-groups/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/community/user-groups/index.html (original)
+++ mesos/site/publish/community/user-groups/index.html Thu Oct 29 17:55:21 2015
@@ -108,6 +108,13 @@
</ul>
+<h3>Poland</h3>
+
+<ul>
+<li><a href="http://www.meetup.com/Warsaw-Mesos-User-Group/">Warsaw</a></li>
+</ul>
+
+
<h3>Netherlands</h3>
<ul>
Modified: mesos/site/publish/documentation/committers/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/committers/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/committers/index.html (original)
+++ mesos/site/publish/documentation/committers/index.html Thu Oct 29 17:55:21
2015
@@ -112,6 +112,13 @@
<td>[email protected]</td>
</tr>
<tr>
+ <td>-5</td>
+ <td>Kapil Arya</td>
+ <td>Mesosphere / Northeastern University</td>
+ <td></td>
+ <td>[email protected]</td>
+ </tr>
+ <tr>
<td>-8</td>
<td>Adam B</td>
<td>Mesosphere</td>
@@ -320,7 +327,7 @@
</tr>
<tr>
<td>Modules / Hooks</td>
- <td>Benjamin Hindman, Niklas Nielsen</td>
+ <td>Kapil Arya, Benjamin Hindman, Niklas Nielsen</td>
</tr>
<tr>
<td>Oversubscription</td>
Modified: mesos/site/publish/documentation/configuration/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/configuration/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/configuration/index.html (original)
+++ mesos/site/publish/documentation/configuration/index.html Thu Oct 29
17:55:21 2015
@@ -1108,7 +1108,7 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
- --docker_sock=VALUE
+ --docker_socket=VALUE
</td>
<td>
The UNIX socket path to be mounted into the docker executor container to
@@ -1475,15 +1475,6 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
- --resource_monitoring_interval=VALUE
- </td>
- <td>
- Periodic time interval for monitoring executor
- resource usage (e.g., 10secs, 1min, etc) (default: 1secs)
- </td>
- </tr>
- <tr>
- <td>
--resources=VALUE
</td>
<td>
@@ -1533,9 +1524,13 @@ file:///path/to/file (where file contain
--[no-]switch_user
</td>
<td>
- Whether to run tasks as the user who
- submitted them rather than the user running
- the slave (requires setuid permission) (default: true)
+ If set to `true`, the agent will attempt to run tasks as
+ the `user` who launched them (as defined in `FrameworkInfo`)
+ (this requires `setuid` permission and that the given `user`
+ exists on the agent).
+ If the user does not exist, an error occurs and the task will fail.
+ If set to `false`, tasks will be run as the same user as the Mesos
+ agent process. (default: true)
</td>
</tr>
<tr>
@@ -1744,6 +1739,26 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
+ --enable-libevent
+ </td>
+ <td>
+ use <a href="https://github.com/libevent/libevent">libevent</a>
+ instead of libev for the libprocess event loop [default=no].
+ Note that the libevent version 2+ development package is required
+ </td>
+ </tr>
+ <tr>
+ <td>
+ --enable-ssl
+ </td>
+ <td>
+ enable <a href="/documentation/latest/ssl">SSL</a> for libprocess
+ communication [default=no].
+ Note that --enable-libevent is currently required for SSL functionality
+ </td>
+ </tr>
+ <tr>
+ <td>
--disable-libtool-lock
</td>
<td>
@@ -1958,12 +1973,38 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
+ --with-libevent=[=DIR]
+ </td>
+ <td>
+ specify where to locate the libevent library
+ </td>
+ </tr>
+ <tr>
+ <td>
+ --with-ssl=[=DIR]
+ </td>
+ <td>
+ specify where to locate the ssl library
+ </td>
+ </tr>
+ <tr>
+ <td>
--with-network-isolator
</td>
<td>
builds the network isolator
</td>
</tr>
+ <tr>
+ <td>
+ --with-nl=[=DIR]
+ </td>
+ <td>
+ specify where to locate the
+ <a href="https://www.infradead.org/~tgr/libnl/">libnl3</a> library
+ (required for the network isolator)
+ </td>
+ </tr>
</table>
Modified: mesos/site/publish/documentation/containerizer/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/containerizer/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/containerizer/index.html (original)
+++ mesos/site/publish/documentation/containerizer/index.html Thu Oct 29
17:55:21 2015
@@ -99,7 +99,7 @@ filesystem.</p>
<p>The modifications are specified in the ContainerInfo included in the
ExecutorInfo, either by a framework or by using the
-–default_container_info slave flag.</p>
+<code>--default_container_info</code> slave flag.</p>
<p>ContainerInfo specifies Volumes which map parts of the shared
filesystem (host_path) into the container’s view of the filesystem
@@ -113,8 +113,8 @@ must exist) in the shared filesystem.</p
<p>The primary use-case for this isolator is to selectively make parts of
the shared filesystem private to each container. For example, a
-private “/tmp” directory can be achieved with
host_path=“tmp” and
-container_path=“/tmp” which will create a directory
“tmp” inside the
+private “/tmp” directory can be achieved with
<code>host_path="tmp"</code> and
+<code>container_path="/tmp"</code> which will create a directory
“tmp” inside the
executor’s work directory (mode 1777) and simultaneously mount it as
/tmp inside the container. This is transparent to processes running
inside the container. Containers will not be able to see the host’s
@@ -123,13 +123,17 @@ inside the container. Containers will no
<h3>Pid Namespace</h3>
<p>The Pid Namespace isolator can be used to isolate each container in
-a separate pid namespace with two main benefits:
-1. Visibility: Processes running in the container (executor and
- descendants) are unable to see or signal processes outside the
- namespace.
-2. Clean termination: Termination of the leading process in a pid
- namespace will result in the kernel terminating all other processes
- in the namespace.</p>
+a separate pid namespace with two main benefits:</p>
+
+<ol>
+<li><p>Visibility: Processes running in the container (executor and
+descendants) are unable to see or signal processes outside the
+namespace.</p></li>
+<li><p>Clean termination: Termination of the leading process in a pid
+namespace will result in the kernel terminating all other processes
+in the namespace.</p></li>
+</ol>
+
<p>The Launcher will use (2) during destruction of a container in
preference to the freezer cgroup, avoiding known kernel issues related
Modified: mesos/site/publish/documentation/docker-containerizer/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/docker-containerizer/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/docker-containerizer/index.html (original)
+++ mesos/site/publish/documentation/docker-containerizer/index.html Thu Oct 29
17:55:21 2015
@@ -93,7 +93,7 @@
<p>To run the slave to enable the Docker Containerizer, you must launch the
slave with “docker” as one of the containerizers option.</p>
-<p>Example: mesos-slave –containerizers=docker,mesos</p>
+<p>Example: <code>mesos-slave --containerizers=docker,mesos</code></p>
<p>Each slave that has the Docker containerizer should have Docker CLI client
installed (version >= 1.0.0).</p>
@@ -117,17 +117,19 @@ Note that the Docker image is expected t
<h2>What does the Docker Containerizer do?</h2>
-<p>The Docker Containerizer is translating Task/Executor Launch and Destroy
calls to Docker CLI commands.</p>
+<p>The Docker Containerizer is translating Task/Executor <code>Launch</code>
and <code>Destroy</code> calls to Docker CLI commands.</p>
<p>Currently the Docker Containerizer when launching as task will do the
following:</p>
-<p>1, Fetch all the files specified in the CommandInfo into the sandbox.
-2, Pull the docker image from the remote repository.
-3, Run the docker image with the Docker executor, and map the sandbox
directory into the Docker container and set the directory mapping to the
MESOS_SANDBOX environment variable.
- The executor will also stream the container logs into stdout/stderr files
in the sandbox.
-4. On container exit or containerizer destroy, stop and remove the docker
container.</p>
+<ol>
+<li><p>Fetch all the files specified in the CommandInfo into the
sandbox.</p></li>
+<li><p>Pull the docker image from the remote repository.</p></li>
+<li><p>Run the docker image with the Docker executor, and map the sandbox
directory into the Docker container and set the directory mapping to the
MESOS_SANDBOX environment variable. The executor will also stream the container
logs into stdout/stderr files in the sandbox.</p></li>
+<li><p>On container exit or containerizer destroy, stop and remove the docker
container.</p></li>
+</ol>
-<p>The Docker Containerizer launches all containers with the
“mesos-” prefix plus the slave id (ie: mesos-slave1-abcdefghji),
and also assumes all containers with the “mesos-” prefix is managed
by the slave and is free to stop or kill the containers.</p>
+
+<p>The Docker Containerizer launches all containers with the
<code>mesos-</code> prefix plus the slave id (ie:
<code>mesos-slave1-abcdefghji</code>), and also assumes all containers with the
<code>mesos-</code> prefix is managed by the slave and is free to stop or kill
the containers.</p>
<p>When launching the docker image as an Executor, the only difference is that
it skips launching a command executor but just reaps on the docker container
executor pid.</p>
@@ -137,23 +139,23 @@ Note that the Docker image is expected t
<h2>Private Docker repository</h2>
-<p>To run a image from a private repository, one can include the uri pointing
to a .dockercfg that contains login information. The .dockercfg file will be
pulled into the sandbox the Docker Containerizer
+<p>To run a image from a private repository, one can include the uri pointing
to a <code>.dockercfg</code> that contains login information. The
<code>.dockercfg</code> file will be pulled into the sandbox the Docker
Containerizer
set the HOME environment variable pointing to the sandbox so docker cli will
automatically pick up the config file.</p>
<h2>CommandInfo to run Docker images</h2>
<p>A docker image currently supports having an entrypoint and/or a default
command.</p>
-<p>To run a docker image with the default command (ie: docker run image), the
CommandInfo’s value must not be set. If the value is set then it will
override the default command.</p>
+<p>To run a docker image with the default command (ie: <code>docker run
image</code>), the CommandInfo’s value must not be set. If the value is
set then it will override the default command.</p>
<p>To run a docker image with an entrypoint defined, the CommandInfo’s
shell option must be set to false.
-If shell option is set to true the Docker Containerizer will run the
user’s command wrapped with /bin/sh -c which will also become parameters
to the image entrypoint.</p>
+If shell option is set to true the Docker Containerizer will run the
user’s command wrapped with <code>/bin/sh -c</code> which will also
become parameters to the image entrypoint.</p>
<h2>Recover Docker containers on slave recovery</h2>
<p>The Docker containerizer supports recovering Docker containers when the
slave restarts, which supports both when the slave is running in a Docker
container or not.</p>
-<p>With the docker_mesos_image flag enabled, the Docker containerizer assumes
the containerizer is running in a container itself and modifies the mechanism
it recovers and launches docker containers accordingly.</p>
+<p>With the <code>--docker_mesos_image</code> flag enabled, the Docker
containerizer assumes the containerizer is running in a container itself and
modifies the mechanism it recovers and launches docker containers
accordingly.</p>
</div>
</div>
Modified: mesos/site/publish/documentation/fetcher/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/fetcher/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/fetcher/index.html (original)
+++ mesos/site/publish/documentation/fetcher/index.html Thu Oct 29 17:55:21 2015
@@ -122,7 +122,7 @@ detailed fetch action descriptions.</p><
<p>Frameworks launch tasks by calling the scheduler driver method
<code>launchTasks()</code>,
passing <code>CommandInfo</code> protobuf structures as arguments. This type
of structure
specifies (among other things) a command and a list of URIs that need to be
-“fetched” into the sandbox directory on the the slave node as a
precondition for
+“fetched” into the sandbox directory on the slave node as a
precondition for
task execution. Hence, when the slave receives a request go launch a task, it
calls upon its fetcher, first, to provision the specified resources into the
sandbox directory. If fetching fails, the task is not started and the reported
Modified: mesos/site/publish/documentation/latest/committers/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/committers/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/committers/index.html (original)
+++ mesos/site/publish/documentation/latest/committers/index.html Thu Oct 29
17:55:21 2015
@@ -112,6 +112,13 @@
<td>[email protected]</td>
</tr>
<tr>
+ <td>-5</td>
+ <td>Kapil Arya</td>
+ <td>Mesosphere / Northeastern University</td>
+ <td></td>
+ <td>[email protected]</td>
+ </tr>
+ <tr>
<td>-8</td>
<td>Adam B</td>
<td>Mesosphere</td>
@@ -320,7 +327,7 @@
</tr>
<tr>
<td>Modules / Hooks</td>
- <td>Benjamin Hindman, Niklas Nielsen</td>
+ <td>Kapil Arya, Benjamin Hindman, Niklas Nielsen</td>
</tr>
<tr>
<td>Oversubscription</td>
Modified: mesos/site/publish/documentation/latest/configuration/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/configuration/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/configuration/index.html (original)
+++ mesos/site/publish/documentation/latest/configuration/index.html Thu Oct 29
17:55:21 2015
@@ -1108,7 +1108,7 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
- --docker_sock=VALUE
+ --docker_socket=VALUE
</td>
<td>
The UNIX socket path to be mounted into the docker executor container to
@@ -1475,15 +1475,6 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
- --resource_monitoring_interval=VALUE
- </td>
- <td>
- Periodic time interval for monitoring executor
- resource usage (e.g., 10secs, 1min, etc) (default: 1secs)
- </td>
- </tr>
- <tr>
- <td>
--resources=VALUE
</td>
<td>
@@ -1533,9 +1524,13 @@ file:///path/to/file (where file contain
--[no-]switch_user
</td>
<td>
- Whether to run tasks as the user who
- submitted them rather than the user running
- the slave (requires setuid permission) (default: true)
+ If set to `true`, the agent will attempt to run tasks as
+ the `user` who launched them (as defined in `FrameworkInfo`)
+ (this requires `setuid` permission and that the given `user`
+ exists on the agent).
+ If the user does not exist, an error occurs and the task will fail.
+ If set to `false`, tasks will be run as the same user as the Mesos
+ agent process. (default: true)
</td>
</tr>
<tr>
@@ -1744,6 +1739,26 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
+ --enable-libevent
+ </td>
+ <td>
+ use <a href="https://github.com/libevent/libevent">libevent</a>
+ instead of libev for the libprocess event loop [default=no].
+ Note that the libevent version 2+ development package is required
+ </td>
+ </tr>
+ <tr>
+ <td>
+ --enable-ssl
+ </td>
+ <td>
+ enable <a href="/documentation/latest/ssl">SSL</a> for libprocess
+ communication [default=no].
+ Note that --enable-libevent is currently required for SSL functionality
+ </td>
+ </tr>
+ <tr>
+ <td>
--disable-libtool-lock
</td>
<td>
@@ -1958,12 +1973,38 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
+ --with-libevent=[=DIR]
+ </td>
+ <td>
+ specify where to locate the libevent library
+ </td>
+ </tr>
+ <tr>
+ <td>
+ --with-ssl=[=DIR]
+ </td>
+ <td>
+ specify where to locate the ssl library
+ </td>
+ </tr>
+ <tr>
+ <td>
--with-network-isolator
</td>
<td>
builds the network isolator
</td>
</tr>
+ <tr>
+ <td>
+ --with-nl=[=DIR]
+ </td>
+ <td>
+ specify where to locate the
+ <a href="https://www.infradead.org/~tgr/libnl/">libnl3</a> library
+ (required for the network isolator)
+ </td>
+ </tr>
</table>
Modified: mesos/site/publish/documentation/latest/containerizer/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/containerizer/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/containerizer/index.html (original)
+++ mesos/site/publish/documentation/latest/containerizer/index.html Thu Oct 29
17:55:21 2015
@@ -99,7 +99,7 @@ filesystem.</p>
<p>The modifications are specified in the ContainerInfo included in the
ExecutorInfo, either by a framework or by using the
-–default_container_info slave flag.</p>
+<code>--default_container_info</code> slave flag.</p>
<p>ContainerInfo specifies Volumes which map parts of the shared
filesystem (host_path) into the container’s view of the filesystem
@@ -113,8 +113,8 @@ must exist) in the shared filesystem.</p
<p>The primary use-case for this isolator is to selectively make parts of
the shared filesystem private to each container. For example, a
-private “/tmp” directory can be achieved with
host_path=“tmp” and
-container_path=“/tmp” which will create a directory
“tmp” inside the
+private “/tmp” directory can be achieved with
<code>host_path="tmp"</code> and
+<code>container_path="/tmp"</code> which will create a directory
“tmp” inside the
executor’s work directory (mode 1777) and simultaneously mount it as
/tmp inside the container. This is transparent to processes running
inside the container. Containers will not be able to see the host’s
@@ -123,13 +123,17 @@ inside the container. Containers will no
<h3>Pid Namespace</h3>
<p>The Pid Namespace isolator can be used to isolate each container in
-a separate pid namespace with two main benefits:
-1. Visibility: Processes running in the container (executor and
- descendants) are unable to see or signal processes outside the
- namespace.
-2. Clean termination: Termination of the leading process in a pid
- namespace will result in the kernel terminating all other processes
- in the namespace.</p>
+a separate pid namespace with two main benefits:</p>
+
+<ol>
+<li><p>Visibility: Processes running in the container (executor and
+descendants) are unable to see or signal processes outside the
+namespace.</p></li>
+<li><p>Clean termination: Termination of the leading process in a pid
+namespace will result in the kernel terminating all other processes
+in the namespace.</p></li>
+</ol>
+
<p>The Launcher will use (2) during destruction of a container in
preference to the freezer cgroup, avoiding known kernel issues related
Modified:
mesos/site/publish/documentation/latest/docker-containerizer/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/docker-containerizer/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/docker-containerizer/index.html
(original)
+++ mesos/site/publish/documentation/latest/docker-containerizer/index.html Thu
Oct 29 17:55:21 2015
@@ -93,7 +93,7 @@
<p>To run the slave to enable the Docker Containerizer, you must launch the
slave with “docker” as one of the containerizers option.</p>
-<p>Example: mesos-slave –containerizers=docker,mesos</p>
+<p>Example: <code>mesos-slave --containerizers=docker,mesos</code></p>
<p>Each slave that has the Docker containerizer should have Docker CLI client
installed (version >= 1.0.0).</p>
@@ -117,17 +117,19 @@ Note that the Docker image is expected t
<h2>What does the Docker Containerizer do?</h2>
-<p>The Docker Containerizer is translating Task/Executor Launch and Destroy
calls to Docker CLI commands.</p>
+<p>The Docker Containerizer is translating Task/Executor <code>Launch</code>
and <code>Destroy</code> calls to Docker CLI commands.</p>
<p>Currently the Docker Containerizer when launching as task will do the
following:</p>
-<p>1, Fetch all the files specified in the CommandInfo into the sandbox.
-2, Pull the docker image from the remote repository.
-3, Run the docker image with the Docker executor, and map the sandbox
directory into the Docker container and set the directory mapping to the
MESOS_SANDBOX environment variable.
- The executor will also stream the container logs into stdout/stderr files
in the sandbox.
-4. On container exit or containerizer destroy, stop and remove the docker
container.</p>
+<ol>
+<li><p>Fetch all the files specified in the CommandInfo into the
sandbox.</p></li>
+<li><p>Pull the docker image from the remote repository.</p></li>
+<li><p>Run the docker image with the Docker executor, and map the sandbox
directory into the Docker container and set the directory mapping to the
MESOS_SANDBOX environment variable. The executor will also stream the container
logs into stdout/stderr files in the sandbox.</p></li>
+<li><p>On container exit or containerizer destroy, stop and remove the docker
container.</p></li>
+</ol>
-<p>The Docker Containerizer launches all containers with the
“mesos-” prefix plus the slave id (ie: mesos-slave1-abcdefghji),
and also assumes all containers with the “mesos-” prefix is managed
by the slave and is free to stop or kill the containers.</p>
+
+<p>The Docker Containerizer launches all containers with the
<code>mesos-</code> prefix plus the slave id (ie:
<code>mesos-slave1-abcdefghji</code>), and also assumes all containers with the
<code>mesos-</code> prefix is managed by the slave and is free to stop or kill
the containers.</p>
<p>When launching the docker image as an Executor, the only difference is that
it skips launching a command executor but just reaps on the docker container
executor pid.</p>
@@ -137,23 +139,23 @@ Note that the Docker image is expected t
<h2>Private Docker repository</h2>
-<p>To run a image from a private repository, one can include the uri pointing
to a .dockercfg that contains login information. The .dockercfg file will be
pulled into the sandbox the Docker Containerizer
+<p>To run a image from a private repository, one can include the uri pointing
to a <code>.dockercfg</code> that contains login information. The
<code>.dockercfg</code> file will be pulled into the sandbox the Docker
Containerizer
set the HOME environment variable pointing to the sandbox so docker cli will
automatically pick up the config file.</p>
<h2>CommandInfo to run Docker images</h2>
<p>A docker image currently supports having an entrypoint and/or a default
command.</p>
-<p>To run a docker image with the default command (ie: docker run image), the
CommandInfo’s value must not be set. If the value is set then it will
override the default command.</p>
+<p>To run a docker image with the default command (ie: <code>docker run
image</code>), the CommandInfo’s value must not be set. If the value is
set then it will override the default command.</p>
<p>To run a docker image with an entrypoint defined, the CommandInfo’s
shell option must be set to false.
-If shell option is set to true the Docker Containerizer will run the
user’s command wrapped with /bin/sh -c which will also become parameters
to the image entrypoint.</p>
+If shell option is set to true the Docker Containerizer will run the
user’s command wrapped with <code>/bin/sh -c</code> which will also
become parameters to the image entrypoint.</p>
<h2>Recover Docker containers on slave recovery</h2>
<p>The Docker containerizer supports recovering Docker containers when the
slave restarts, which supports both when the slave is running in a Docker
container or not.</p>
-<p>With the docker_mesos_image flag enabled, the Docker containerizer assumes
the containerizer is running in a container itself and modifies the mechanism
it recovers and launches docker containers accordingly.</p>
+<p>With the <code>--docker_mesos_image</code> flag enabled, the Docker
containerizer assumes the containerizer is running in a container itself and
modifies the mechanism it recovers and launches docker containers
accordingly.</p>
</div>
</div>
Modified: mesos/site/publish/documentation/latest/fetcher/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/fetcher/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/fetcher/index.html (original)
+++ mesos/site/publish/documentation/latest/fetcher/index.html Thu Oct 29
17:55:21 2015
@@ -122,7 +122,7 @@ detailed fetch action descriptions.</p><
<p>Frameworks launch tasks by calling the scheduler driver method
<code>launchTasks()</code>,
passing <code>CommandInfo</code> protobuf structures as arguments. This type
of structure
specifies (among other things) a command and a list of URIs that need to be
-“fetched” into the sandbox directory on the the slave node as a
precondition for
+“fetched” into the sandbox directory on the slave node as a
precondition for
task execution. Hence, when the slave receives a request go launch a task, it
calls upon its fetcher, first, to provision the specified resources into the
sandbox directory. If fetching fails, the task is not started and the reported
Modified: mesos/site/publish/documentation/latest/oversubscription/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/oversubscription/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/oversubscription/index.html
(original)
+++ mesos/site/publish/documentation/latest/oversubscription/index.html Thu Oct
29 17:55:21 2015
@@ -356,16 +356,6 @@ between these corrections is controlled
</td>
</tr>
- <tr>
- <td>
- --resource_monitoring_interval=VALUE
- </td>
- <td>
- Periodic time interval for monitoring executor resource usage (e.g.,
-10secs, 1min, etc) (default: 1secs)
- </td>
- </tr>
-
</table>
Modified: mesos/site/publish/documentation/latest/ssl/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/ssl/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/ssl/index.html (original)
+++ mesos/site/publish/documentation/latest/ssl/index.html Thu Oct 29 17:55:21
2015
@@ -81,7 +81,13 @@
<p>See our <a href="/community/">community</a> page for more
details.</p>
</div>
<div class="col-md-8">
- <h1>Configuration</h1>
+ <h1>SSL in Mesos</h1>
+
+<p>By default, all the messages that flow through the Mesos cluster are
unencrypted, making it possible for anyone with access to the cluster to
intercept and potentially control arbitrary tasks.</p>
+
+<p>SSL/TLS support was added to libprocess in Mesos 0.23.0, which encypts the
low-level communication that Mesos uses for network communication between Mesos
components. Additionally, HTTPS support was added to the Mesos WebUI.</p>
+
+<h1>Configuration</h1>
<p>There is currently only one implementation of the <a
href="https://github.com/apache/mesos/blob/master/3rdparty/libprocess/include/process/socket.hpp">libprocess
socket interface</a> that supports SSL. This implementation uses <a
href="https://github.com/libevent/libevent">libevent</a>. Specifically it
relies on the <code>libevent-openssl</code> library that wraps
<code>openssl</code>.</p>
@@ -96,19 +102,27 @@
<h4>SSL_ENABLED=(false|0,true|1) [default=false|0]</h4>
-<p>Turn on or off SSL. When it is turned off it is the equivalent of default
mesos with libevent as the backing for events. All sockets default to the
non-SSL implementation. When it is turned on, the default configuration for
sockets is SSL. This means outgoing connections will use SSL, and incoming
connections will be expected to speak SSL as well. None of the below flags are
relevant if SSL is not enabled.</p>
+<p>Turn on or off SSL. When it is turned off it is the equivalent of default
mesos with libevent as the backing for events. All sockets default to the
non-SSL implementation. When it is turned on, the default configuration for
sockets is SSL. This means outgoing connections will use SSL, and incoming
connections will be expected to speak SSL as well. None of the below flags are
relevant if SSL is not enabled. If SSL is enabled, <code>SSL_CERT_FILE</code>
and <code>SSL_KEY_FILE</code> must be supplied.</p>
<h4>SSL_SUPPORT_DOWNGRADE=(false|0,true|1) [default=false|0]</h4>
<p>Control whether or not non-SSL connections can be established. If this is
enabled <strong>on the accepting side</strong>, then the accepting side will
downgrade to a non-SSL socket if the connecting side is attempting to
communicate via non-SSL. (e.g. HTTP). See <a href="#Upgrading">Upgrading Your
Cluster</a> for more details.</p>
+<h4>SSL_KEY_FILE=(path to key)</h4>
+
+<p>The location of the private key used by OpenSSL.</p>
+
+<pre><code>// For example, to generate a key with OpenSSL:
+openssl genrsa -des3 -f4 -passout pass:some_password -out key.pem 4096
+</code></pre>
+
<h4>SSL_CERT_FILE=(path to certificate)</h4>
<p>The location of the certificate that will be presented.</p>
-<h4>SSL_KEY_FILE=(path to key)</h4>
-
-<p>The location of the private key used by OpenSSL.</p>
+<pre><code>// For example, to generate a certificate with OpenSSL:
+openssl req -new -x509 -passin pass:some_password -days 365 -key key.pem -out
cert.pem
+</code></pre>
<h4>SSL_VERIFY_CERT=(false|0,true|1) [default=false|0]</h4>
@@ -185,6 +199,8 @@ SSL_ENABLED=true SSL_SUPPORT_DOWNGRADE=f
<p>The default Mesos WebUI uses relative links. Some of these links transition
between endpoints served by the master and slaves. The WebUI currently does not
have enough information to change the ‘http’ vs ‘https’
links based on whether the target endpoint is currently being served by an
SSL-enabled binary. This may cause certain links in the WebUI to be broken when
a cluster is in a transition state between SSL and non-SSL. Any tools that hit
these endpoints will still be able to access them as long as they hit the
endpoint using the right protocol, or the <code>SSL_SUPPORT_DOWNGRADE</code>
option is set to true.</p>
+<p><strong>NOTE:</strong> Frameworks with their own WebUI will need to add
HTTPS support separately.</p>
+
<h3>Certificates</h3>
<p>Most browsers have built in protection that guard transitions between pages
served using different certificates. For this reason you may choose to serve
both the master and slave endpoints using a common certificate that covers
multiple hostnames. If you do not do this, certain links, such as those to
slave sandboxes, may seem broken as the browser treats the transition between
differing certificates transition as unsafe.</p>
Modified: mesos/site/publish/documentation/latest/submitting-a-patch/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/submitting-a-patch/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/submitting-a-patch/index.html
(original)
+++ mesos/site/publish/documentation/latest/submitting-a-patch/index.html Thu
Oct 29 17:55:21 2015
@@ -150,6 +150,7 @@
<li><p>Make sure that all of the unit tests pass, including the new test cases
you have added: <code>make check</code>.</p>
<ol>
+<li>To build all tests without executing them, use something like: <code>make
tests</code>.</li>
<li>To execute a single unit test (helpful when trying to debug a test case
failure), use something like: <code>make check
GTEST_FILTER="HTTPTest.Delete"</code>.</li>
</ol>
</li>
Modified: mesos/site/publish/documentation/latest/testing-patterns/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/testing-patterns/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/testing-patterns/index.html
(original)
+++ mesos/site/publish/documentation/latest/testing-patterns/index.html Thu Oct
29 17:55:21 2015
@@ -85,6 +85,69 @@
<p>A collection of common testing patterns used in Mesos tests. If you have
found a good way to test a certain condition that you think may be useful for
other cases, please document it here together with motivation and
background.</p>
+<h2>Expediting events with <code>Clock</code></h2>
+
+<p>Some events in Mesos are separated by certain timeouts, for example
framework registration attempts. Simple waiting for such events to fire leads
to blocking the test thread for the duration of the associated timeout. This
increases the duration of <code>make check</code> for no good reason.</p>
+
+<p>If an event is triggered by an act of processing a message from an
actor’s mailbox, it can be expedited with the help of libprocess'
<code>Clock</code> routines. Delayed messages are maintained in sorted order by
their due time and are dispatched â i.e. pushed into destination mailboxes
â when this time comes. An important bit here is that time is driven by the
internal libprocess clock. We can shift this clock into the future by calling
<code>Clock::advance(<duration>)</code>, rendering certain front messages
in the collection due now. These messages are dispatched instantly, effectively
overriding the associated event’s timeout.</p>
+
+<p><strong>NOTE</strong>: Without calling <code>Clock::settle()</code> there
is no guarantee a dispatched message has been already processed.</p>
+
+<p>Below is an example of this pattern. To avoid master backlogging, Mesos
frameworks usually wait for some time (backoff) before retrying registration.
In the test below we simulate the loss of a registration request, but avoid
blocking the test for the backoff duration.</p>
+
+<pre><code class="{.cpp}">TEST_F(FaultToleranceTest,
FrameworkReliableRegistration)
+{
+ Try<PID<Master>> master = StartMaster();
+ ASSERT_SOME(master);
+
+ Try<PID<Slave>> slave = StartSlave();
+ ASSERT_SOME(slave);
+
+ // As a side effect of driver instantiation, registration backoff will be set
+ // to a default: internal::scheduler::REGISTRATION_BACKOFF_FACTOR.
+ MockScheduler sched;
+ MesosSchedulerDriver driver(
+ &sched, DEFAULT_FRAMEWORK_INFO, master.get(), DEFAULT_CREDENTIAL);
+
+ Future<Nothing> registered;
+ EXPECT_CALL(sched, registered(&driver, _, _))
+ .WillOnce(FutureSatisfy(&registered));
+
+ EXPECT_CALL(sched, resourceOffers(&driver, _))
+ .WillRepeatedly(Return());
+
+ EXPECT_CALL(sched, offerRescinded(&driver, _))
+ .Times(AtMost(1));
+
+ Future<AuthenticateMessage> authenticateMessage =
+ FUTURE_PROTOBUF(AuthenticateMessage(), _, master.get());
+
+ // Drop the first framework registered message, allow subsequent messages.
+ Future<FrameworkRegisteredMessage> frameworkRegisteredMessage =
+ DROP_PROTOBUF(FrameworkRegisteredMessage(), master.get(), _);
+
+ driver.start();
+
+ // Ensure authentication occurs.
+ AWAIT_READY(authenticateMessage);
+
+ AWAIT_READY(frameworkRegisteredMessage);
+
+ // Trigger the registration retry instantly to avoid blocking the test.
+ Clock::pause();
+ Clock::advance(internal::scheduler::REGISTRATION_BACKOFF_FACTOR);
+
+ AWAIT_READY(registered); // Ensures registered message is received.
+
+ driver.stop();
+ driver.join();
+
+ Shutdown();
+
+ Clock::resume();
+}
+</code></pre>
+
<h2>Using <code>Clock</code> magic to ensure an event is processed</h2>
<p>Scheduling a sequence of events in an asynchronous environment is not easy:
a function call usually initiates an action and returns immediately, while the
action runs in background. A simple, obvious, and bad solution is to use
<code>os::sleep()</code> to wait for action completion. The time the action
needs to finish may vary on different machines, while increasing sleep duration
increases the test execution time and slows down <code>make check</code>. One
of the right ways to do it is to wait for an action to finish and proceed right
after. This is possible using libprocess' <code>Clock</code> routines.</p>
Modified: mesos/site/publish/documentation/latest/upgrades/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/upgrades/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/upgrades/index.html (original)
+++ mesos/site/publish/documentation/latest/upgrades/index.html Thu Oct 29
17:55:21 2015
@@ -85,6 +85,16 @@
<p>This document serves as a guide for users who wish to upgrade an existing
mesos cluster. Some versions require particular upgrade techniques when
upgrading a running cluster. Some upgrades will have incompatible changes.</p>
+<h2>Upgrading from 0.25.x to 0.26.x</h2>
+
+<p><strong>NOTE</strong> The names of some TaskStatus::Reason enums have been
changed. But the tag numbers remain unchanged, so it is backwards compatible.
Frameworks using the new version might need to do some compile time
adjustments:</p>
+
+<ul>
+<li>REASON_MEM_LIMIT -> REASON_CONTAINER_LIMITATION_MEMORY</li>
+<li>REASON_EXECUTOR_PREEMPTED -> REASON_CONTAINER_PREEMPTED</li>
+</ul>
+
+
<h2>Upgrading from 0.24.x to 0.25.x</h2>
<p><strong>NOTE</strong> The following endpoints will be deprecated in favor
of new endpoints. Both versions will be available in 0.25 but the deprecated
endpoints will be removed in a subsequent release.</p>
@@ -115,6 +125,8 @@
</ul>
+<p><strong>NOTE</strong> The C++/Java/Python scheduler bindings have been
updated. In particular, the driver can make a suppressOffers() call to stop
receiving offers (until reviveOffers() is called).</p>
+
<p>In order to upgrade a running cluster:</p>
<ul>
Modified: mesos/site/publish/documentation/oversubscription/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/oversubscription/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/oversubscription/index.html (original)
+++ mesos/site/publish/documentation/oversubscription/index.html Thu Oct 29
17:55:21 2015
@@ -356,16 +356,6 @@ between these corrections is controlled
</td>
</tr>
- <tr>
- <td>
- --resource_monitoring_interval=VALUE
- </td>
- <td>
- Periodic time interval for monitoring executor resource usage (e.g.,
-10secs, 1min, etc) (default: 1secs)
- </td>
- </tr>
-
</table>
Modified: mesos/site/publish/documentation/ssl/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/ssl/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/ssl/index.html (original)
+++ mesos/site/publish/documentation/ssl/index.html Thu Oct 29 17:55:21 2015
@@ -81,7 +81,13 @@
<p>See our <a href="/community/">community</a> page for more
details.</p>
</div>
<div class="col-md-8">
- <h1>Configuration</h1>
+ <h1>SSL in Mesos</h1>
+
+<p>By default, all the messages that flow through the Mesos cluster are
unencrypted, making it possible for anyone with access to the cluster to
intercept and potentially control arbitrary tasks.</p>
+
+<p>SSL/TLS support was added to libprocess in Mesos 0.23.0, which encypts the
low-level communication that Mesos uses for network communication between Mesos
components. Additionally, HTTPS support was added to the Mesos WebUI.</p>
+
+<h1>Configuration</h1>
<p>There is currently only one implementation of the <a
href="https://github.com/apache/mesos/blob/master/3rdparty/libprocess/include/process/socket.hpp">libprocess
socket interface</a> that supports SSL. This implementation uses <a
href="https://github.com/libevent/libevent">libevent</a>. Specifically it
relies on the <code>libevent-openssl</code> library that wraps
<code>openssl</code>.</p>
@@ -96,19 +102,27 @@
<h4>SSL_ENABLED=(false|0,true|1) [default=false|0]</h4>
-<p>Turn on or off SSL. When it is turned off it is the equivalent of default
mesos with libevent as the backing for events. All sockets default to the
non-SSL implementation. When it is turned on, the default configuration for
sockets is SSL. This means outgoing connections will use SSL, and incoming
connections will be expected to speak SSL as well. None of the below flags are
relevant if SSL is not enabled.</p>
+<p>Turn on or off SSL. When it is turned off it is the equivalent of default
mesos with libevent as the backing for events. All sockets default to the
non-SSL implementation. When it is turned on, the default configuration for
sockets is SSL. This means outgoing connections will use SSL, and incoming
connections will be expected to speak SSL as well. None of the below flags are
relevant if SSL is not enabled. If SSL is enabled, <code>SSL_CERT_FILE</code>
and <code>SSL_KEY_FILE</code> must be supplied.</p>
<h4>SSL_SUPPORT_DOWNGRADE=(false|0,true|1) [default=false|0]</h4>
<p>Control whether or not non-SSL connections can be established. If this is
enabled <strong>on the accepting side</strong>, then the accepting side will
downgrade to a non-SSL socket if the connecting side is attempting to
communicate via non-SSL. (e.g. HTTP). See <a href="#Upgrading">Upgrading Your
Cluster</a> for more details.</p>
+<h4>SSL_KEY_FILE=(path to key)</h4>
+
+<p>The location of the private key used by OpenSSL.</p>
+
+<pre><code>// For example, to generate a key with OpenSSL:
+openssl genrsa -des3 -f4 -passout pass:some_password -out key.pem 4096
+</code></pre>
+
<h4>SSL_CERT_FILE=(path to certificate)</h4>
<p>The location of the certificate that will be presented.</p>
-<h4>SSL_KEY_FILE=(path to key)</h4>
-
-<p>The location of the private key used by OpenSSL.</p>
+<pre><code>// For example, to generate a certificate with OpenSSL:
+openssl req -new -x509 -passin pass:some_password -days 365 -key key.pem -out
cert.pem
+</code></pre>
<h4>SSL_VERIFY_CERT=(false|0,true|1) [default=false|0]</h4>
@@ -185,6 +199,8 @@ SSL_ENABLED=true SSL_SUPPORT_DOWNGRADE=f
<p>The default Mesos WebUI uses relative links. Some of these links transition
between endpoints served by the master and slaves. The WebUI currently does not
have enough information to change the ‘http’ vs ‘https’
links based on whether the target endpoint is currently being served by an
SSL-enabled binary. This may cause certain links in the WebUI to be broken when
a cluster is in a transition state between SSL and non-SSL. Any tools that hit
these endpoints will still be able to access them as long as they hit the
endpoint using the right protocol, or the <code>SSL_SUPPORT_DOWNGRADE</code>
option is set to true.</p>
+<p><strong>NOTE:</strong> Frameworks with their own WebUI will need to add
HTTPS support separately.</p>
+
<h3>Certificates</h3>
<p>Most browsers have built in protection that guard transitions between pages
served using different certificates. For this reason you may choose to serve
both the master and slave endpoints using a common certificate that covers
multiple hostnames. If you do not do this, certain links, such as those to
slave sandboxes, may seem broken as the browser treats the transition between
differing certificates transition as unsafe.</p>
Modified: mesos/site/publish/documentation/submitting-a-patch/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/submitting-a-patch/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/submitting-a-patch/index.html (original)
+++ mesos/site/publish/documentation/submitting-a-patch/index.html Thu Oct 29
17:55:21 2015
@@ -150,6 +150,7 @@
<li><p>Make sure that all of the unit tests pass, including the new test cases
you have added: <code>make check</code>.</p>
<ol>
+<li>To build all tests without executing them, use something like: <code>make
tests</code>.</li>
<li>To execute a single unit test (helpful when trying to debug a test case
failure), use something like: <code>make check
GTEST_FILTER="HTTPTest.Delete"</code>.</li>
</ol>
</li>
Modified: mesos/site/publish/documentation/testing-patterns/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/testing-patterns/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/testing-patterns/index.html (original)
+++ mesos/site/publish/documentation/testing-patterns/index.html Thu Oct 29
17:55:21 2015
@@ -85,6 +85,69 @@
<p>A collection of common testing patterns used in Mesos tests. If you have
found a good way to test a certain condition that you think may be useful for
other cases, please document it here together with motivation and
background.</p>
+<h2>Expediting events with <code>Clock</code></h2>
+
+<p>Some events in Mesos are separated by certain timeouts, for example
framework registration attempts. Simple waiting for such events to fire leads
to blocking the test thread for the duration of the associated timeout. This
increases the duration of <code>make check</code> for no good reason.</p>
+
+<p>If an event is triggered by an act of processing a message from an
actor’s mailbox, it can be expedited with the help of libprocess'
<code>Clock</code> routines. Delayed messages are maintained in sorted order by
their due time and are dispatched â i.e. pushed into destination mailboxes
â when this time comes. An important bit here is that time is driven by the
internal libprocess clock. We can shift this clock into the future by calling
<code>Clock::advance(<duration>)</code>, rendering certain front messages
in the collection due now. These messages are dispatched instantly, effectively
overriding the associated event’s timeout.</p>
+
+<p><strong>NOTE</strong>: Without calling <code>Clock::settle()</code> there
is no guarantee a dispatched message has been already processed.</p>
+
+<p>Below is an example of this pattern. To avoid master backlogging, Mesos
frameworks usually wait for some time (backoff) before retrying registration.
In the test below we simulate the loss of a registration request, but avoid
blocking the test for the backoff duration.</p>
+
+<pre><code class="{.cpp}">TEST_F(FaultToleranceTest,
FrameworkReliableRegistration)
+{
+ Try<PID<Master>> master = StartMaster();
+ ASSERT_SOME(master);
+
+ Try<PID<Slave>> slave = StartSlave();
+ ASSERT_SOME(slave);
+
+ // As a side effect of driver instantiation, registration backoff will be set
+ // to a default: internal::scheduler::REGISTRATION_BACKOFF_FACTOR.
+ MockScheduler sched;
+ MesosSchedulerDriver driver(
+ &sched, DEFAULT_FRAMEWORK_INFO, master.get(), DEFAULT_CREDENTIAL);
+
+ Future<Nothing> registered;
+ EXPECT_CALL(sched, registered(&driver, _, _))
+ .WillOnce(FutureSatisfy(&registered));
+
+ EXPECT_CALL(sched, resourceOffers(&driver, _))
+ .WillRepeatedly(Return());
+
+ EXPECT_CALL(sched, offerRescinded(&driver, _))
+ .Times(AtMost(1));
+
+ Future<AuthenticateMessage> authenticateMessage =
+ FUTURE_PROTOBUF(AuthenticateMessage(), _, master.get());
+
+ // Drop the first framework registered message, allow subsequent messages.
+ Future<FrameworkRegisteredMessage> frameworkRegisteredMessage =
+ DROP_PROTOBUF(FrameworkRegisteredMessage(), master.get(), _);
+
+ driver.start();
+
+ // Ensure authentication occurs.
+ AWAIT_READY(authenticateMessage);
+
+ AWAIT_READY(frameworkRegisteredMessage);
+
+ // Trigger the registration retry instantly to avoid blocking the test.
+ Clock::pause();
+ Clock::advance(internal::scheduler::REGISTRATION_BACKOFF_FACTOR);
+
+ AWAIT_READY(registered); // Ensures registered message is received.
+
+ driver.stop();
+ driver.join();
+
+ Shutdown();
+
+ Clock::resume();
+}
+</code></pre>
+
<h2>Using <code>Clock</code> magic to ensure an event is processed</h2>
<p>Scheduling a sequence of events in an asynchronous environment is not easy:
a function call usually initiates an action and returns immediately, while the
action runs in background. A simple, obvious, and bad solution is to use
<code>os::sleep()</code> to wait for action completion. The time the action
needs to finish may vary on different machines, while increasing sleep duration
increases the test execution time and slows down <code>make check</code>. One
of the right ways to do it is to wait for an action to finish and proceed right
after. This is possible using libprocess' <code>Clock</code> routines.</p>
Modified: mesos/site/publish/documentation/upgrades/index.html
URL:
http://svn.apache.org/viewvc/mesos/site/publish/documentation/upgrades/index.html?rev=1711312&r1=1711311&r2=1711312&view=diff
==============================================================================
--- mesos/site/publish/documentation/upgrades/index.html (original)
+++ mesos/site/publish/documentation/upgrades/index.html Thu Oct 29 17:55:21
2015
@@ -85,6 +85,16 @@
<p>This document serves as a guide for users who wish to upgrade an existing
mesos cluster. Some versions require particular upgrade techniques when
upgrading a running cluster. Some upgrades will have incompatible changes.</p>
+<h2>Upgrading from 0.25.x to 0.26.x</h2>
+
+<p><strong>NOTE</strong> The names of some TaskStatus::Reason enums have been
changed. But the tag numbers remain unchanged, so it is backwards compatible.
Frameworks using the new version might need to do some compile time
adjustments:</p>
+
+<ul>
+<li>REASON_MEM_LIMIT -> REASON_CONTAINER_LIMITATION_MEMORY</li>
+<li>REASON_EXECUTOR_PREEMPTED -> REASON_CONTAINER_PREEMPTED</li>
+</ul>
+
+
<h2>Upgrading from 0.24.x to 0.25.x</h2>
<p><strong>NOTE</strong> The following endpoints will be deprecated in favor
of new endpoints. Both versions will be available in 0.25 but the deprecated
endpoints will be removed in a subsequent release.</p>
@@ -115,6 +125,8 @@
</ul>
+<p><strong>NOTE</strong> The C++/Java/Python scheduler bindings have been
updated. In particular, the driver can make a suppressOffers() call to stop
receiving offers (until reviveOffers() is called).</p>
+
<p>In order to upgrade a running cluster:</p>
<ul>