├── checklists ├── cmake.md └── windows-containers.md ├── sprints ├── 2017-07-13.md ├── 2017-03-10.md ├── 2017-06-22.md ├── 2017-03-23.md ├── 2017-04-27.md ├── 2017-06-08.md ├── 2017-05-09.md ├── 2017-02-28.md ├── 2017-01-27.md ├── 2017-02-03.md ├── 2017-04-04.md ├── 2017-02-17.md ├── 2017-05-25.md ├── 2017-02-21.md ├── 2017-01-20.md ├── 2016-12-09.md ├── 2017-01-13.md ├── 2017-01-05.md └── 2016-12-15.md ├── notes ├── debugchildren.md ├── start.sh ├── development.md └── deployment.md └── README.md /checklists/cmake.md: -------------------------------------------------------------------------------- 1 | # CMake release checklist 2 | 3 | - [ ] Add CMake to documentation. 4 | - [ ] Add source groups to libmesos binaries. 5 | 6 | ## Backlog 7 | 8 | - [ ] Enable builds on VS 2017, deprecate VS 2015. 9 | - [ ] Speed up build time (_e.g._, with PCHs). 10 | -------------------------------------------------------------------------------- /checklists/windows-containers.md: -------------------------------------------------------------------------------- 1 | # Windows Containers support release checklist 2 | 3 | - [ ] Test that the "it works" commit can run a task from a real master. 4 | - [ ] Add `docker_containerizer_tests.cpp` to Windows build. 5 | - [ ] All warnings in Mesos code eliminated (warnings generated by third parties or the build system are _highly_ preferable to eliminate, but not blocking). 6 | - [ ] Fix the bug that user-specified environment variables are overridden on Windows paths. 7 | - [ ] Add to documentation instructions to point at a local copy of 3rdparty, and to install the multi-process debugger. 8 | 9 | ## Backlog 10 | 11 | - [ ] Enable Mesos Containers (and decouple the Windows executor's kill-all-executors-on-failure problem) 12 | - [ ] Consider resolving long paths issue for Windows Server 2012. 13 | - [ ] Consider resolving the symlinks issue for Windows Server 2012. 14 | - [ ] Unify the separate Windows/Unix implementation of the command executor in the same way we did with the DefaultExecutor, _i.e._, use the parenthooks API to get rid of `launchTaskWindows`. 15 | - [ ] Consider forking the Windows isolators (_e.g._, filesystem). 16 | - [ ] Reduce time spent in tests. (Part of the problem seems to be a problem that the Windows Containers images are very very large, part of the problem is a ~45 second startup time for the test harness.) 17 | - [ ] We have about 50% of the tests lit up; light up the rest. 18 | - [ ] Remove Windows dependency on the CRT. 19 | - [ ] Enable Unicode support. 20 | - [ ] Enable Authentication. 21 | -------------------------------------------------------------------------------- /sprints/2017-07-13.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-07-13 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#), 4 | but I encourage you to make your own. 5 | 6 | # July 27 Goals 7 | 8 | This sprint focuses on fixing the CMake build system. 9 | 10 | ## Andy 11 | 1. Fix CMake build system. 12 | 1. [MESOS-5656](https://issues.apache.org/jira/browse/MESOS-5656) 13 | 1. [MESOS-3576](https://issues.apache.org/jira/browse/MESOS-3576) 14 | 1. [MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396) 15 | 1. [MESOS-3107](https://issues.apache.org/jira/browse/MESOS-3107) 16 | 1. Fix [MESOS-7541](https://issues.apache.org/jira/browse/MESOS-7541), cannot compile without pre-compiled headers. 17 | 1. Port ZooKeeper unit tests. 18 | 19 | ## Jeff 20 | On vacation for a few weeks. 21 | 22 | ## John 23 | 1. Working on other projects. 24 | 25 | ## Li 26 | 1. Test end-to-end customer scenario. 27 | 28 | ## External 29 | 1. Add and vet an `install` target to CMake. [MESOS-6771](https://issues.apache.org/jira/browse/MESOS-6771) 30 | 1. Port the Mesos CLI scheduler `src/cli/execute.cpp` for easier end-to-end testing on Windows. 31 | 32 | ## Extra 33 | 1. Port `files_tests.cpp`. [MESOS-6706](https://issues.apache.org/jira/browse/MESOS-6706) 34 | 1. Switch from `cmd.exe` to `powershell.exe` as default shell. 35 | 36 | ## Future 37 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. [MESOS-6807](https://issues.apache.org/jira/browse/MESOS-6807) and [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690) 38 | 39 | # Previous Goals Accomplished 40 | 41 | 1. NTFS long path support is committed to master. 42 | 1. Unicode compilation is committed to master. 43 | -------------------------------------------------------------------------------- /sprints/2017-03-10.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-03-10 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## April 1st Goals 6 | 7 | 1. Turn on `-Werror` i.e. treat warnings as errors, and have an error/warning free build. 8 | 1. Bring build times to a tolerable level (less than five minutes for a clean build), probably by introducing pre-compiled headers. 9 | 1. Refactor Mesos Container support to use `libprocess` abstraction layer, and port tests. 10 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. (Dependent on above.) 11 | 1. Port Docker containerizer tests. 12 | 1. Move to Visual Studio 2017 (in order to unblock Mesos moving past C++11). 13 | 1. Introduce CMake deprecation to mailing list. 14 | 15 | ### Extra 16 | 17 | 1. Record a demo of the Windows Docker container support for a Mesos meetup. 18 | 1. Update Mesos documentation for using and developing on Windows. 19 | 1. Finally bring in Glog Windows stacktrace port to Mesos. 20 | 21 | ### Goal Progress made 22 | 23 | 1. Many warnings have been fixed, more to go. 24 | 1. Pre-compiled header work has started, and benchmarks look promising. Integration is underway. 25 | 1. Design discussions happened, work is starting. 26 | 1. No progress, requires the above first. 27 | 1. Not started. 28 | 1. Visual Studio 2017 has launched, we can add deprecation warnings. Mesos compiles without error. 29 | 1. Message drafted, working on problems brought up in review. 30 | 31 | ## Focus for the upcoming week 32 | 33 | * **[kaysoky/andschwa]** Introduce CMake solution to dev mailing list and have deprecation discussion. 34 | * **[andschwa]** Rewrite Windows Container using `libprocess` (to help with [MESOS-6868](https://issues.apache.org/jira/browse/MESOS-6868)). 35 | * **[andschwa]** Start updating Mesos documentation for Windows. 36 | * **[jeffaco]** Submit patches enabling pre-compiled headers in CMake. 37 | * **[jeffaco]** Benchmark use of Cotire based pre-compiled headers on Linux. 38 | * **[johnkord]** Create a test filter for stout tests that use `symlink` on Windows, and continue onboarding. 39 | -------------------------------------------------------------------------------- /sprints/2017-06-22.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-06-08 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | # July 6 Goals 6 | 7 | This sprint focuses on fixing the CMake build system, and introducing the file fetcher. 8 | 9 | ## Andy 10 | 1. Fix CMake build system. [MESOS-5656](https://issues.apache.org/jira/browse/MESOS-5656), [MESOS-3576](https://issues.apache.org/jira/browse/MESOS-3576), [MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396), and [MESOS-3107](https://issues.apache.org/jira/browse/MESOS-3107) 11 | 1. Port `files_tests.cpp`. [MESOS-6706](https://issues.apache.org/jira/browse/MESOS-6706) 12 | 1. Switch from `cmd.exe` to `powershell.exe` as default shell. 13 | 14 | ## Jeff 15 | 1. Port the file fetcher. [MESOS-6705](https://issues.apache.org/jira/browse/MESOS-6705) 16 | 17 | ## John 18 | 1. Working on other projects. 19 | 20 | ## Li 21 | 1. Create an Azure ARM template to deploy DC/OS. 22 | 23 | ## External 24 | 1. Add and vet an `install` target to CMake. [MESOS-6771](https://issues.apache.org/jira/browse/MESOS-6771) 25 | 1. Port the Mesos CLI scheduler `src/cli/execute.cpp` for easier end-to-end testing on Windows. 26 | 27 | ## Future 28 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. [MESOS-6807](https://issues.apache.org/jira/browse/MESOS-6807) and [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690) 29 | 30 | # Previous Goals Accomplished 31 | 32 | 1. Submit long path support patches. 33 | 1. Windows 10 Creators Update broke opt-in NTFS long path support. [MESOS-7407](https://issues.apache.org/jira/browse/MESOS-7407) 34 | 1. Enable NTFS long path support automatically. [MESOS-7371](https://issues.apache.org/jira/browse/MESOS-7371) 35 | 1. Fix "Agent sandboxes on Windows surpass the 260 character path length limit". [MESOS-5849](https://issues.apache.org/jira/browse/MESOS-5849) 36 | 1. Enable `_UNICODE` definition. [MESOS-6817](https://issues.apache.org/jira/browse/MESOS-6817) 37 | 1. Glog patches submitted upstream. 38 | 1. Add a Windows segfault handler for Glog. [MESOS-7245](https://issues.apache.org/jira/browse/MESOS-7245) 39 | 1. Submit an abstract for MesosCon talk. 40 | -------------------------------------------------------------------------------- /sprints/2017-03-23.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-03-23 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## April 1st Goals 6 | 7 | 1. Turn on `-Werror` i.e. treat warnings as errors, and have an error/warning free build. 8 | 1. Bring build times to a tolerable level (less than five minutes for a clean build), probably by introducing pre-compiled headers. 9 | 1. Refactor Mesos Container support to use `libprocess` abstraction layer, and port tests. 10 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. (Dependent on above.) 11 | 1. Port Docker containerizer tests. 12 | 1. Move to Visual Studio 2017 (in order to unblock Mesos moving past C++11). 13 | 1. Introduce CMake deprecation to mailing list. 14 | 15 | ### Extra 16 | 17 | 1. Record a demo of the Windows Docker container support for a Mesos meetup. 18 | 1. Update Mesos documentation for using and developing on Windows. 19 | 1. Finally bring in Glog Windows stacktrace port to Mesos. 20 | 21 | ### Goal Progress made 22 | 23 | 1. Many warnings have been fixed, more to go (this item mostly rests on Joseph pulling patches out of a monolithic path from Alex). 24 | 1. Benchmarks are available, and Jeff is working to create patches. 25 | 1. The refactor is almost complete, including a refactor of the default executor to remove `launchTaskWindows`. 26 | 1. No progress, requires the above first. 27 | 1. Not started. (On the topic of tests, a review is up adding a symlink permissions filter.) 28 | 1. Visual Studio 2017 has launched, we can add deprecation warnings. Mesos compiles without error. 29 | Andy has been routinely building with the 2017 compilers without issue. 30 | 1. Message posted, no feedback from dev list yet. Posting of PCH patches should push this issue. 31 | 32 | ## Focus for the upcoming week 33 | 34 | * **[andschwa]** Post patches refactoring the Windows task launching (to help with [MESOS-6868](https://issues.apache.org/jira/browse/MESOS-6868)). 35 | * **[andschwa]** Start updating Mesos documentation for Windows. 36 | * **[jeffaco]** Submit patches enabling pre-compiled headers in CMake. 37 | * **[jeffaco]** Benchmark use of Cotire based pre-compiled headers on Linux. 38 | * **[johnkord]** Investigate and fix the failing [Base64 tests](https://issues.apache.org/jira/browse/MESOS-7236). 39 | -------------------------------------------------------------------------------- /sprints/2017-04-27.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-04-27 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## April Goals 6 | 7 | 1. Add a ReviewBot for testing patches on Windows. [MESOS-7343](https://issues.apache.org/jira/browse/MESOS-7343) 8 | 1. Add and vet an `install` target to CMake. [MESOS-6771](https://issues.apache.org/jira/browse/MESOS-6771) 9 | 1. Port Docker containerizer tests. [MESOS-7342](https://issues.apache.org/jira/browse/MESOS-7342) 10 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. [MESOS-6807](https://issues.apache.org/jira/browse/MESOS-6807) and [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690) 11 | 1. Deprecate Visual Studio 2015 support. [MESOS-7297](https://issues.apache.org/jira/browse/MESOS-7297) 12 | 1. Add a Windows segfault handler for Glog. [MESOS-7245](https://issues.apache.org/jira/browse/MESOS-7245) 13 | 1. Unblock CTrip by fixing [#1](https://github.com/Microsoft/mesos-log/issues/1). 14 | 15 | ### Extra 16 | 17 | 1. Record a demo of the Windows Docker container support for a Mesos meetup. 18 | 1. Update Mesos documentation for using and developing on Windows. 19 | 1. Send an update to the developer mailing list of Windows support. 20 | 1. Turn on `-Werror` i.e. treat warnings as errors, and have an error/warning free build. 21 | 1. Port the Mesos CLI scheduler `src/cli/execute.cpp` for easier end-to-end testing on Windows. 22 | 23 | ## Progress Toward Goals 24 | 25 | 1. ReviewBot is unblocked. 26 | 1. The `install` target is being moved to May. 27 | 1. Docker containerizer tests are being ported. 28 | 1. Resource limit APIs si being moved to May. 29 | 1. Visual Studio 2015 support has _officially_ been given deprecation notice. 30 | 1. Segfault handler is a nice-to-have that will be in May's "Extra" goals. 31 | 1. CTrip is unblocked. 32 | 33 | ### Extra 34 | 1. Presentation was given internally at Microsoft. 35 | 1. Documentation is partially updated, pending final long path support fixes. 36 | 1. No update to dev list was sent yet. 37 | 1. Turning on `-Werror` would be nice, but it might be a while. 38 | 1. The Mesos CLI scheduler has not been ported yet. 39 | 40 | ## Focus for the upcoming week 41 | 42 | * Andy: Submit patches for NTFS long path fixes. 43 | * Andy: Setup a Mesos ReviewBot for testing patches on Windows. 44 | * Andy: Re-submit ZooKeeper CMake patch via pull request. 45 | * Jeff: Investigate link tests. 46 | * John: Port Docker containerizer tests. 47 | -------------------------------------------------------------------------------- /sprints/2017-06-08.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-06-08 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | # June 22 Goals 6 | 7 | This sprint focuses on introducing the file fetcher, and proper long path support. 8 | 9 | ## Andy 10 | 1. Submit long path support patches. 11 | 1. Windows 10 Creators Update broke opt-in NTFS long path support. [MESOS-7407](https://issues.apache.org/jira/browse/MESOS-7407) 12 | 1. Enable NTFS long path support automatically. [MESOS-7371](https://issues.apache.org/jira/browse/MESOS-7371) 13 | 1. Fix "Agent sandboxes on Windows surpass the 260 character path length limit". [MESOS-5849](https://issues.apache.org/jira/browse/MESOS-5849) 14 | 1. Port `files_tests.cpp` [MESOS-6706](https://issues.apache.org/jira/browse/MESOS-6706) 15 | 1. Update Glog PR per reviews. 16 | 1. Switch from `cmd.exe` to `powershell.exe` as default shell. 17 | 18 | ## Jeff 19 | 1. Port the file fetcher. [MESOS-6705](https://issues.apache.org/jira/browse/MESOS-6705) 20 | 1. Submit an abstract for MesosCon talk. 21 | 22 | ## John 23 | 1. Working on other projects. 24 | 25 | ## Li 26 | 1. Create an Azure ARM template to deploy DC/OS. 27 | 28 | ## External 29 | 1. Add and vet an `install` target to CMake. [MESOS-6771](https://issues.apache.org/jira/browse/MESOS-6771) 30 | 1. Port the Mesos CLI scheduler `src/cli/execute.cpp` for easier end-to-end testing on Windows. 31 | 32 | ## Extra 33 | 1. Add a Windows segfault handler for Glog. [MESOS-7245](https://issues.apache.org/jira/browse/MESOS-7245) 34 | 35 | ## Future 36 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. [MESOS-6807](https://issues.apache.org/jira/browse/MESOS-6807) and [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690) 37 | 1. Enable `_UNICODE` definition. [MESOS-6817](https://issues.apache.org/jira/browse/MESOS-6817) 38 | 39 | # Previous Goals Accomplished 40 | 41 | 1. Fix Docker version parsing regression. [MESOS-7464](https://issues.apache.org/jira/browse/MESOS-7464) 42 | 1. Enable arbitrary configurations, e.g. `Release` [MESOS-7157](https://issues.apache.org/jira/browse/MESOS-7157) 43 | 1. Fix `net::hostname` slowness [MESOS-7548](https://issues.apache.org/jira/browse/MESOS-7548) 44 | 1. Fix the `duration.hpp` warning. [MESOS-7459](https://issues.apache.org/jira/browse/MESOS-7459) 45 | 1. Fix errant `false` command warning. [MESOS-7638](https://issues.apache.org/jira/browse/MESOS-7638) 46 | 1. Fix errant `future discarded` error message. [#59817](https://reviews.apache.org/r/59817/) -------------------------------------------------------------------------------- /notes/debugchildren.md: -------------------------------------------------------------------------------- 1 | # Debugging Child Processes on Windows 2 | 3 | Debugging child processes on Windows is best achieved with Visual Studio. 4 | 5 | Note that it's often more efficient to launch the child directly (if you 6 | can determine the environment that the child runs in), but this may not 7 | be possible all of the time. 8 | 9 | These instructions are for Visual Studio 2017 Enterprise Edition. 10 | 11 | ### One-Time Setup for Child Process Debugging 12 | 13 | 1. Launch Visual Studio 2017 14 | 2. Select `Tools -> Extensions & Updates` 15 | 1. Select **Online** on the left hand pane 16 | 2. In the search window, type `Child Process` and hit Return 17 | 3. Find the `Microsoft Child Process Debugging Power Tool`, 18 | click on that, and download it. 19 | 3. When download is complete, exit and relaunch Visual Studio. 20 | 4. Select `Tools -> Options` 21 | 1. Select `Projects and Solutions` on the left hand pane 22 | 2. Check `Show Output window when build starts` 23 | 3. Check `Lightweight solution load for all solutions` 24 | 25 | ### Debug Mesos Child Process 26 | 27 | 1. Open the Mesos solution file: 28 | 1. Select `File -> Open -> Project/Solution ...` 29 | 2. Navigate to `/Build` 30 | 3. Select file `Mesos.sln` to open 31 | 2. Verify that debug settings are correct: 32 | 1. Select `Debug -> Other Debug Targets -> Child Process Debugging Settings ...` 33 | 2. Check `Enable Child Process Debugging` 34 | 3. From the *Persist settings to:* pulldown, select you can choose how 35 | and where Visual Studio persists these settings. Unfortunately, both 36 | choices tend to reset the setting when you rebuild from scratch. 37 | 4. Click **Save** on right hand side of *Child Process Debugging Settings* 38 | window. 39 | 3. Read [Running Unit Tests][] in the Mesos documentation. 40 | 4. Select `mesos-tests` as a startup project: 41 | 1. Right clieck `mesos-tests` in the list of projects in the 42 | *Solution Explorer* window, 43 | 2. Select `Set as StartUp Project` from the pop-up menu. 44 | 5. Use standard debugging techniques: 45 | 1. Set breakpoint(s) in the code invoked by `mesos-tests` 46 | 2. Set breakpoint(s) in the child code that will be launched. Note that 47 | most child code is launched by 48 | `3rdparty/libprocess/include/process/windows/subprocess.hpp`. If you 49 | wish to set a breakpoint before launching the process, search for 50 | *::CreateProcessW*(* in that file. 51 | 52 | [Running Unit Tests]: https://github.com/Microsoft/mesos-log/blob/master/notes/development.md#running-unit-tests 53 | -------------------------------------------------------------------------------- /sprints/2017-05-09.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-05-09 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | # May 22 Goals 6 | 7 | _We are changing to two week sprints._ 8 | 9 | This sprint focuses on repaying technical debt and fixing regressions. 10 | 11 | ## Andy 12 | 1. Submit long path support patches. 13 | 1. Windows 10 Creators Update broke opt-in NTFS long path support. [MESOS-7407](https://issues.apache.org/jira/browse/MESOS-7407) 14 | 1. Enable NTFS long path support automatically. [MESOS-7371](https://issues.apache.org/jira/browse/MESOS-7371) 15 | 1. Fix "Agent sandboxes on Windows surpass the 260 character path length limit". [MESOS-5849](https://issues.apache.org/jira/browse/MESOS-5849) 16 | 1. Enable `_UNICODE` definition. [MESOS-6817](https://issues.apache.org/jira/browse/MESOS-6817) 17 | 1. Port `files_tests.cpp` [MESOS-6706](https://issues.apache.org/jira/browse/MESOS-6706) 18 | 1. Add a ReviewBot for testing patches on Windows. [MESOS-7343](https://issues.apache.org/jira/browse/MESOS-7343) 19 | 1. Re-submit ZooKeeper CMake patch via pull request. [ZOOKEEPER-2756](https://issues.apache.org/jira/browse/ZOOKEEPER-2756) 20 | 1. Update Mesos documentation for using and developing on Windows. 21 | 1. Send an update to the developer mailing list of Windows support. 22 | 23 | ## Jeff 24 | 1. Enable `net::links` for unit tests. [MESOS-5938](https://issues.apache.org/jira/browse/MESOS-5938) 25 | 1. Enable the network isolator. [MESOS-6693](https://issues.apache.org/jira/browse/MESOS-6693) 26 | 1. Port fetcher tests. [MESOS-6705](https://issues.apache.org/jira/browse/MESOS-6705) 27 | 1. Wait to get `path::absolute` submitted. [MESOS-5937](https://issues.apache.org/jira/browse/MESOS-5937) 28 | 29 | ## John 30 | 1. Port Docker containerizer tests. [MESOS-7342](https://issues.apache.org/jira/browse/MESOS-7342) 31 | 32 | ## Li 33 | 1. Test end-to-end scenarios. 34 | 35 | ## External 36 | 1. Fix Docker version parsing regression. [MESOS-7464](https://issues.apache.org/jira/browse/MESOS-7464) 37 | 1. Add and vet an `install` target to CMake. [MESOS-6771](https://issues.apache.org/jira/browse/MESOS-6771) 38 | 1. Port the Mesos CLI scheduler `src/cli/execute.cpp` for easier end-to-end testing on Windows. 39 | 40 | ## Extra 41 | 1. Add a Windows segfault handler for Glog. [MESOS-7245](https://issues.apache.org/jira/browse/MESOS-7245) 42 | 1. Fix the `duration.hpp` warning. [MESOS-7459](https://issues.apache.org/jira/browse/MESOS-7459) 43 | 44 | ## Future 45 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. [MESOS-6807](https://issues.apache.org/jira/browse/MESOS-6807) and [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690) 46 | -------------------------------------------------------------------------------- /notes/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # shellcheck shell=bash 3 | 4 | # ZooKeeper 5 | 6 | start-zookeeper() { 7 | zookeeper_version=${1:-3.4.10} 8 | zookeeper=zookeeper-$zookeeper_version 9 | if [[ ! -e $zookeeper ]]; then 10 | wget "https://www-eu.apache.org/dist/zookeeper/$zookeeper/$zookeeper.tar.gz" 11 | tar -xf "$zookeeper.tar.gz" 12 | fi 13 | 14 | cd "$zookeeper" || exit 1 15 | if [[ ! -e conf/zoo.cfg ]]; then 16 | cp conf/zoo_sample.cfg conf/zoo.cfg 17 | fi 18 | 19 | ./bin/zkServer.sh start-foreground &> log & 20 | } 21 | 22 | # Mesos 23 | build-release() { 24 | mesos_version=${1:-1.4.1} 25 | mesos=mesos-$mesos_version 26 | if [[ ! -e $mesos ]]; then 27 | wget "http://www.apache.org/dist/mesos/$mesos_version/$mesos.tar.gz" 28 | tar -xf "$mesos.tar.gz" 29 | fi 30 | 31 | cd "$mesos" || exit 1 32 | if [[ ! -e build ]]; then 33 | mkdir build 34 | fi 35 | 36 | cd build || exit 1 37 | ../configure --disable-python 38 | make -j8 39 | } 40 | 41 | build-dev() { 42 | mesos_version=${1:-1.5.x} 43 | mesos=mesos 44 | if [[ ! -e $mesos ]]; then 45 | git clone https://git-wip-us.apache.org/repos/asf/mesos.git 46 | fi 47 | 48 | cd $mesos || exit 1 49 | git checkout "$mesos_version" 50 | if [[ ! -e build ]]; then 51 | mkdir build 52 | fi 53 | 54 | cd build || exit 1 55 | if [[ ! -e CMakeCache.txt ]]; then 56 | cmake .. -GNinja -DENABLE_JAVA=ON 57 | ninja-build mesos-master 58 | chmod +x bin/*.sh 59 | fi 60 | } 61 | 62 | start-mesos() { 63 | MESOS_NATIVE_JAVA_LIBRARY=$(pwd)/src/.libs/libmesos.so 64 | export MESOS_NATIVE_JAVA_LIBRARY 65 | 66 | mkdir -p ~/master_work_dir 67 | ip=$(hostname -i) 68 | ./bin/mesos-master.sh --ip="$ip" --work_dir="$HOME/master_work_dir" --zk="zk://$ip:2181/mesos" --quorum=1 &> log & 69 | } 70 | 71 | # Marathon 72 | 73 | start-marathon() { 74 | marathon_version=1.5.2 75 | marathon=marathon-$marathon_version 76 | if [[ ! -e $marathon.tgz ]]; then 77 | wget http://downloads.mesosphere.com/marathon/v$marathon_version/$marathon.tgz 78 | tar -xzf "$marathon.tgz" 79 | fi 80 | 81 | cd $marathon || exit 1 82 | 83 | ip=$(hostname -i) 84 | ./bin/marathon --master "zk://$ip:2181/mesos" --zk "zk://$ip:2181/marathon" --checkpoint &> log & 85 | } 86 | 87 | start-metronome() { 88 | metronome=metronome-0.3.3 89 | cd $metronome || exit 1 90 | ip=$(hostname -i) 91 | ./bin/metronome -d -Dmetronome.leader.election.hostname=$ip -Dmetronome.mesos.leader.ui.url=http://$ip:5050 -Dmetronome.mesos.master.url=$ip:5050 &> log & 92 | } 93 | 94 | start-cluster() { 95 | ( start-zookeeper ) & 96 | ( build-dev ; start-mesos ) & 97 | ( start-marathon ) & 98 | } 99 | -------------------------------------------------------------------------------- /sprints/2017-02-28.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-02-21 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Review goals for March 1st (tomorrow) 6 | 7 | 1. Light up all critical-path tests for Windows agent that are currently possible, 8 | given existing Windows agent feature set. 9 | 1. Integrate tests into CI (Mesosphere has agreed to do this and support it). 10 | 1. Bring CMake system to feature completeness required to have the autotools deprecation conversation. 11 | (Note that deprecating autotools will be a multi-week or multi-month discussion, 12 | and will likely involve more technical work to complete, for example, bug fixes.) 13 | 1. Add support for Mesos Containers in the Windows launcher. 14 | 1. Integrate Windows Container support. 15 | 16 | ### Goal Progress made 17 | 18 | 1. We hit the goal of getting all available critical path tests integrated. 19 | We still need to light up additional tests, and critical path tests that are not yet available. 20 | 1. Mesosphere lit up internal CI, but we still need public CI (i.e. on each patch). 21 | 1. CMake feature parity is as close as reasonably expected. 22 | Need to review [MESOS-6814](https://issues.apache.org/jira/browse/MESOS-6814). 23 | 1. Mesos Container (job object) support for the Windows launcher went up for review, 24 | but was not yet integerated. 25 | 1. Windows Container (Docker) support has been integrated. 26 | 27 | ## April 1st Goals 28 | 29 | 1. Turn on `-Werror` i.e. treat warnings as errors, and have an error/warning free build. 30 | 1. Bring build times to a tolerable level (less than five minutes for a clean build), probably by introducing pre-compiled headers. 31 | 1. Refactor Mesos Container support to use `libprocess` abstraction layer, and port tests. 32 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. (Dependent on above.) 33 | 1. Port Docker containerizer tests. 34 | 1. Move to Visual Studio 2017 (in order to unblock Mesos moving past C++11). 35 | 1. Record a demo of the Windows Docker container support for a Mesos meetup. 36 | 37 | ## Focus for the upcoming week 38 | 39 | * **[kaysoky/andschwa]** Introduce CMake solution to dev mailing list and have deprecation discussion. 40 | * **[andschwa]** Rewrite Windows Container using `libprocess` (to help with [MESOS-6868](https://issues.apache.org/jira/browse/MESOS-6868)). 41 | * **[andschwa]** Integrate Glog stack traces into Mesos crashes [CONSOLIDATED, might have to happen after the `WindowsLauncher` code is integrated.] 42 | * **[andschwa]** Remove Glog redefinition warning. 43 | * **[andschwa]** Benchmark pre-compiled headers build speed improvements. 44 | * **[jeffaco]** Temporarily reassigned to other projects for the week. 45 | * **[johnkord]** Create a test filter for stout tests that use `symlink` on Windows, and continue onboarding. 46 | -------------------------------------------------------------------------------- /sprints/2017-01-27.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-01-27 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Goals for March 1 6 | 7 | 1. **Light up all critical-path tests for Windows agent that are currently posisble, given existing Windows agent feature set.** 8 | 1. **Integrate tests into CI (Mesosphere has agreed to do this and support it).** 9 | 1. **Bring CMake system to feature completeness required to have the autotools deprecation conversation.** (Note that deprecating autotools will be a multi-week or multi-month discussion, and will likely involve more technical work to complete, for example, bug fixes.) 10 | 1. **Add support for resource limit APIs in the Windows launcher.** 11 | 1. **Integrate Windows Container support.** 12 | 13 | ## Current progress on these goals since early December 14 | 15 | 1. `hausdorff` has started working on the Windows Containers changes. If we do not find any serious bugs, we can expect them to be ready by mid- or late- next week. 16 | 1. **[No change since last week]** About 50% of our tests are now lit up in Apache master branch. About 80% of the critical-path tests that can currently be supported (_e.g._, those that do not require auth or persistence in the master) are either in review or checked in. A complete list of critical path tests is [here](https://issues.apache.org/jira/browse/MESOS-6695), though this does include stuff like the auth tests. 17 | 1. Mesosphere has committed to Li that the Mesosphere-internal CI will be lit up by mid-next week. We will expect a progress update on Monday. 18 | 1. The two known issues that remain for CMake feature completeness, [MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396) and [MESOS-6814](https://issues.apache.org/jira/browse/MESOS-6814), will be completed by EOD Friday (_i.e._, today). The list of issues remaining on this issue is [here](https://issues.apache.org/jira/issues/?jql=(labels%20%3D%20windows-mvp%20OR%20labels%20%3D%20microsoft)%20and%20labels%20%3D%20cmake%20AND%20project%20%3D%20Mesos%20AND%20status%20in%20(Open%2C%20Accepted)) (all of these except those mentioned above are in still in review since last week). 19 | 1. **[No change since last week]** Andy was off this week. He is still actively working on the resource limit APIs patch. He will be out part of next week, so it's not clear when this work will be completed. 20 | 21 | ## Main accomplishments this week 22 | 23 | * **Began fixing up the Windows Container changes.** 24 | * This involves sync'ing some somewhat stale changes, and ensuring they work against `mpark`'s file descriptor changes. 25 | * This does not have a lot of obvious signs of progress, but we are getting closer to resolving this issue, and hope to have it done by the end of next week. 26 | 27 | ## Focus for the upcoming week 28 | 29 | * **[dpravat]** Is busy these next few weeks with his Azure Stack work. We will need to pick up making sure mpark's file descriptor changes work with the end-to-end tests, as well as the work to eliminate warnings. 30 | * **[hausdorff]** Complete Windows Containers work. 31 | * **[andschwa]** Complete [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690), and continue onboarding. 32 | * **[andschwa]** Integrate glog stack traces into Mesos crashes [CONSOLIDATED, might have to happen after the `WindowsLauncher` code is integrated.] -------------------------------------------------------------------------------- /sprints/2017-02-03.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-02-03 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Goals for March 1 6 | 7 | 1. **Light up all critical-path tests for Windows agent that are currently posisble, given existing Windows agent feature set.** 8 | 1. **Integrate tests into CI (Mesosphere has agreed to do this and support it).** 9 | 1. **Bring CMake system to feature completeness required to have the autotools deprecation conversation.** (Note that deprecating autotools will be a multi-week or multi-month discussion, and will likely involve more technical work to complete, for example, bug fixes.) 10 | 1. **Add support for Mesos Containers in the Windows launcher.** 11 | 1. **Integrate Windows Container support.** 12 | 13 | ## Current progress on these goals since early December 14 | 15 | 1. The Windows Containers changes are ready for review, now only blocked by `mpark` checking in the File Descriptor reviews. `hausdorff` and `mpark` fixed these reviews this week, and they should be checked in today (Friday) or Monday. ETA for the Windows Containers reviews is next week, hopefully before Wednesday. 16 | 1. The Mesos Containers work: Andy's work on the Windows Launcher works, and is being polished for review. The next chunk of work is to wire up the resource APIs. This should not be more than a couple weeks of work. 17 | 1. **[No change since last week]** About 50% of our tests are now lit up in Apache master branch. About 80% of the critical-path tests that can currently be supported (_e.g._, those that do not require auth or persistence in the master) are either in review or checked in. A complete list of critical path tests is [here](https://issues.apache.org/jira/browse/MESOS-6695), though this does include stuff like the auth tests. 18 | 1. Mesosphere has lit up the internal CI. It now broadcasts build status to Mesosphere employees, and the `#windows` channel on the Mesos Slack. 19 | 1. **[No change since last week]** The two known issues that remain for CMake feature completeness, [MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396) and [MESOS-6814](https://issues.apache.org/jira/browse/MESOS-6814), will be completed by EOD Friday (_i.e._, today). The list of issues remaining on this issue is [here](https://issues.apache.org/jira/issues/?jql=(labels%20%3D%20windows-mvp%20OR%20labels%20%3D%20microsoft)%20and%20labels%20%3D%20cmake%20AND%20project%20%3D%20Mesos%20AND%20status%20in%20(Open%2C%20Accepted)) (all of these except those mentioned above are in still in review since last week). 20 | 21 | ## Main accomplishments this week 22 | 23 | * **Windows Container changes ready for review.** 24 | * `mpark`'s FD changes, which block these reviews, have been fixed by `hausdorff` and `mpark`, and are nearly ready to check in. ETA Friday (today) or Monday. 25 | * Following this, the WC reviews are expected to be reviewed and checked in next week, hopefully before Wednesday. 26 | 27 | ## Focus for the upcoming week 28 | 29 | * **[hausdorff]** Complete Windows Containers work. 30 | * **[hausdorff]** Complete CMake work, introduce CMake solution to dev@ list, have deprecation discussion. 31 | * **[hausdorff]** Begin removing compiler warnings from Windows. 32 | * **[andschwa]** Complete [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690), and continue onboarding. 33 | * **[andschwa]** Integrate glog stack traces into Mesos crashes [CONSOLIDATED, might have to happen after the `WindowsLauncher` code is integrated.] -------------------------------------------------------------------------------- /sprints/2017-04-04.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-04-04 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## March Achievements 6 | 7 | ### Toward Goals 8 | 9 | 1. Pre-compiled header support was accepted upstream. A clean build on Windos now happens faster than on Linux. [MESOS-7226](https://issues.apache.org/jira/browse/MESOS-7226) 10 | 1. Mesos Containerizer refactor to use a `JobObjectManager` inside `libprocess` is under review, and slated for integration upstream. [MESOS-6892](https://issues.apache.org/jira/browse/MESOS-6892) 11 | 1. Windows `subprocess` rewritten to use Unicode version of `::CreateProcess`. 12 | 1. Windows implementation of `os::killtree` now works more like `cgroups` with job objects. [MESOS-6868](https://issues.apache.org/jira/browse/MESOS-6868) 13 | 1. Windows argument escaping was fixed. [MESOS-5418](https://issues.apache.org/jira/browse/MESOS-5418) and [MESOS-5522](https://issues.apache.org/jira/browse/MESOS-5522) 14 | 1. Added a filter to enable cleanly running (symlink) tests on Windows without administrative rights. [MESOS-6731](https://issues.apache.org/jira/browse/MESOS-6731) 15 | 16 | ### Extras 17 | 18 | 1. The `support/post-reviews.py` script was ported to Windows. [#57857](https://reviews.apache.org/r/57857/) 19 | 1. Glog Windows stacktrace support was integrated. [#57490](https://reviews.apache.org/r/57490/) 20 | 1. Incremental builds on Windows were fixed. [#57052](https://reviews.apache.org/r/57052/) 21 | 22 | ## April Goals 23 | 24 | 1. Add a ReviewBot for testing patches on Windows. [MESOS-7343](https://issues.apache.org/jira/browse/MESOS-7343) 25 | 1. Add and vet an `install` target to CMake. [MESOS-6771](https://issues.apache.org/jira/browse/MESOS-6771) 26 | 1. Port Docker containerizer tests. [MESOS-7342](https://issues.apache.org/jira/browse/MESOS-7342) 27 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. [MESOS-6807](https://issues.apache.org/jira/browse/MESOS-6807) and [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690) 28 | 1. Deprecate Visual Studio 2015 support. [MESOS-7297](https://issues.apache.org/jira/browse/MESOS-7297) 29 | 1. Add a Windows segfault handler for Glog. [MESOS-7245](https://issues.apache.org/jira/browse/MESOS-7245) 30 | 1. Unblock CTrip by fixing [#1](https://github.com/Microsoft/mesos-log/issues/1). 31 | 32 | ### Extra 33 | 34 | 1. Record a demo of the Windows Docker container support for a Mesos meetup. 35 | 1. Update Mesos documentation for using and developing on Windows. 36 | 1. Send an update to the developer mailing list of Windows support. 37 | 1. Turn on `-Werror` i.e. treat warnings as errors, and have an error/warning free build. 38 | 1. Port the Mesos CLI scheduler `src/cli/execute.cpp` for easier end-to-end testing on Windows. 39 | 40 | ## Focus for the upcoming week 41 | 42 | * Andy: Update Mesos documentation for Windows. 43 | * Andy: Record a demo and create a presentation for Mesos on Windows. 44 | * Andy: Setup a Mesos ReviewBot for testing patches on Windows. 45 | * Andy: Make a CMake build system for ZooKeeper to support Visual Studio 2017. 46 | * Jeff: Fix `CopyFetcherPluginTest.FetchExistingFile` test. [MESOS-7311](https://issues.apache.org/jira/browse/MESOS-7311) 47 | * John: Fix Base64 encoding/decoding. [MESOS-7236](https://issues.apache.org/jira/browse/MESOS-7236) 48 | * John: Port Docker containerizer tests. [MESOS-7342](https://issues.apache.org/jira/browse/MESOS-7342) 49 | * Li: Fix CTrip's crash. [#1](https://github.com/Microsoft/mesos-log/issues/1) 50 | -------------------------------------------------------------------------------- /sprints/2017-02-17.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-02-17 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Goals for March 1 6 | 7 | 1. **Light up all critical-path tests for Windows agent that are currently possible, given existing Windows agent feature set.** 8 | 1. **Integrate tests into CI (Mesosphere has agreed to do this and support it).** 9 | 1. **Bring CMake system to feature completeness required to have the autotools deprecation conversation.** (Note that deprecating autotools will be a multi-week or multi-month discussion, and will likely involve more technical work to complete, for example, bug fixes.) 10 | 1. **Add support for Mesos Containers in the Windows launcher.** 11 | 1. **Integrate Windows Container support.** 12 | 13 | ## Current progress on these goals since early December 14 | 15 | 1. **[No change since last week]** About 50% of our tests are now lit up in Apache master branch. About 80% of the critical-path tests that can currently be supported (_e.g._, those that do not require auth or persistence in the master) are either in review or checked in. A complete list of critical path tests is [here](https://issues.apache.org/jira/browse/MESOS-6695), though this does include stuff like the auth tests. 16 | 1. Mesosphere has lit up the internal CI. It now broadcasts build status to Mesosphere employees, and the `#windows` channel on the Mesos Slack, but there are no public facing or per-review builds yet. 17 | 1. **[No change since last week]** The two known issues that remain for CMake feature completeness, [MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396) and [MESOS-6814](https://issues.apache.org/jira/browse/MESOS-6814), will be completed by EOD Friday (_i.e._, today). The list of issues remaining on this issue is [here](https://issues.apache.org/jira/issues/?jql=(labels%20%3D%20windows-mvp%20OR%20labels%20%3D%20microsoft)%20and%20labels%20%3D%20cmake%20AND%20project%20%3D%20Mesos%20AND%20status%20in%20(Open%2C%20Accepted)) (all of these except those mentioned above are in still in review since last week). 18 | 1. Mesos Container (job object) support for the Windows launcher is up for review. Next step is wiring up resource limit APIs. 19 | 1. Windows Container (Docker) support has been integrated. 20 | 21 | ## Main accomplishments this week 22 | 23 | * Fix majority of Windows compiler warnings. [libprocess](https://reviews.apache.org/r/56675/), [stout](https://reviews.apache.org/r/56591/) 24 | * [Workaround VS2017 bug (thanks Michael) and file with MSVC](https://reviews.apache.org/r/56781/). 25 | * Developer list consent for trying pre-compiled headers for build improvements. 26 | * [CMake changes checked in.](https://reviews.apache.org/r/55749/) 27 | * [Windows Container (Docker) changes checked in.](https://reviews.apache.org/r/56505/) 28 | * `mparks`'s FD changes checked in. 29 | * [Mesos Containers (cgroup) for Windows up for review.](https://reviews.apache.org/r/56362/) 30 | 31 | ## Focus for the upcoming week 32 | 33 | * **[hausdorff]** Introduce CMake solution to dev mailing list and have deprecation discussion. 34 | * **[andschwa]** Complete [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690). 35 | * **[andschwa]** Integrate Glog stack traces into Mesos crashes [CONSOLIDATED, might have to happen after the `WindowsLauncher` code is integrated.] 36 | * **[andschwa]** Remove Glog redefinition warning. 37 | * **[jeffaco]** Benchmark pre-compiled headers build speed improvements, and continue onboarding. 38 | * **[johnkord]** Continue onboarding. 39 | -------------------------------------------------------------------------------- /sprints/2017-05-25.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-05-27 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | # June 8 Goals 6 | 7 | _We are changing to two week sprints._ 8 | 9 | This sprint focuses on repaying technical debt and fixing regressions. 10 | 11 | ## Andy 12 | 1. Submit long path support patches. 13 | 1. Windows 10 Creators Update broke opt-in NTFS long path support. [MESOS-7407](https://issues.apache.org/jira/browse/MESOS-7407) 14 | 1. Enable NTFS long path support automatically. [MESOS-7371](https://issues.apache.org/jira/browse/MESOS-7371) 15 | 1. Fix "Agent sandboxes on Windows surpass the 260 character path length limit". [MESOS-5849](https://issues.apache.org/jira/browse/MESOS-5849) 16 | 1. Port `files_tests.cpp` [MESOS-6706](https://issues.apache.org/jira/browse/MESOS-6706) 17 | 1. Enable `_UNICODE` definition. [MESOS-6817](https://issues.apache.org/jira/browse/MESOS-6817) 18 | 1. Enable arbitrary configurations, e.g. `Release` [MESOS-7157](https://issues.apache.org/jira/browse/MESOS-7157) 19 | 1. Fix `net::hostname` slowness [MESOS-7548](https://issues.apache.org/jira/browse/MESOS-7548) 20 | 1. Fix the `duration.hpp` warning. [MESOS-7459](https://issues.apache.org/jira/browse/MESOS-7459) 21 | 22 | ## Jeff 23 | 1. Enable `net::links` for unit tests. [MESOS-5938](https://issues.apache.org/jira/browse/MESOS-5938) 24 | 1. Enable the network isolator. [MESOS-6693](https://issues.apache.org/jira/browse/MESOS-6693) 25 | 1. Port fetcher tests. [MESOS-6705](https://issues.apache.org/jira/browse/MESOS-6705) 26 | 27 | ## John 28 | 1. Port Docker containerizer tests. [MESOS-7342](https://issues.apache.org/jira/browse/MESOS-7342) 29 | 30 | ## Li 31 | 1. Send an update to the developer mailing list of Windows support. 32 | 33 | ## External 34 | 1. Fix Docker version parsing regression. [MESOS-7464](https://issues.apache.org/jira/browse/MESOS-7464) 35 | 1. Add and vet an `install` target to CMake. [MESOS-6771](https://issues.apache.org/jira/browse/MESOS-6771) 36 | 1. Port the Mesos CLI scheduler `src/cli/execute.cpp` for easier end-to-end testing on Windows. 37 | 38 | ## Extra 39 | 1. Add a Windows segfault handler for Glog. [MESOS-7245](https://issues.apache.org/jira/browse/MESOS-7245) 40 | 41 | ## Future 42 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. [MESOS-6807](https://issues.apache.org/jira/browse/MESOS-6807) and [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690) 43 | 44 | # Previous Goals Accomplished 45 | 46 | 1. Add a ReviewBot for testing patches on Windows. [MESOS-7343](https://issues.apache.org/jira/browse/MESOS-7343) 47 | 1. Re-submit ZooKeeper CMake patch via pull request. [ZOOKEEPER-2756](https://issues.apache.org/jira/browse/ZOOKEEPER-2756) 48 | 1. Update Mesos documentation for using and developing on Windows. 49 | 1. Test end-to-end scenarios. 50 | 1. Wait to get `path::absolute` submitted. [MESOS-5937](https://issues.apache.org/jira/browse/MESOS-5937) 51 | 1. Fix Andy's incremental build issues [MESOS-7544](https://issues.apache.org/jira/browse/MESOS-7544) 52 | 1. Remove need to set environment variable `PreferredToolArchitecture` [MESOS-7498](https://issues.apache.org/jira/browse/MESOS-7498) 53 | 1. The /debug:fastlink linker option is not being respected [MESOS-7496](https://issues.apache.org/jira/browse/MESOS-7496) 54 | 1. Make Windows ReviewBot failure logs available [#59500](https://reviews.apache.org/r/59500/) 55 | 1. Add hash verification of third party downloads [#59536](https://reviews.apache.org/r/59536/) 56 | -------------------------------------------------------------------------------- /sprints/2017-02-21.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-02-21 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Goals for March 1 6 | 7 | 1. **Light up all critical-path tests for Windows agent that are currently possible, given existing Windows agent feature set.** 8 | 1. **Integrate tests into CI (Mesosphere has agreed to do this and support it).** 9 | 1. **Bring CMake system to feature completeness required to have the autotools deprecation conversation.** (Note that deprecating autotools will be a multi-week or multi-month discussion, and will likely involve more technical work to complete, for example, bug fixes.) 10 | 1. **Add support for Mesos Containers in the Windows launcher.** 11 | 1. **Integrate Windows Container support.** 12 | 13 | ## Current progress on these goals since early December 14 | 15 | 1. **[No change since last week]** About 50% of our tests are now lit up in Apache master branch. About 80% of the critical-path tests that can currently be supported (_e.g._, those that do not require auth or persistence in the master) are either in review or checked in. A complete list of critical path tests is [here](https://issues.apache.org/jira/browse/MESOS-6695), though this does include stuff like the auth tests. 16 | 1. **[No change since last week]** Mesosphere has lit up the internal CI. It now broadcasts build status to Mesosphere employees, and the `#windows` channel on the Mesos Slack, but there are no public facing or per-review builds yet. 17 | 1. **[No change since last week]** The two known issues that remain for CMake feature completeness, [MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396) and [MESOS-6814](https://issues.apache.org/jira/browse/MESOS-6814), will be completed by EOD Friday (_i.e._, today). The list of issues remaining on this issue is [here](https://issues.apache.org/jira/issues/?jql=(labels%20%3D%20windows-mvp%20OR%20labels%20%3D%20microsoft)%20and%20labels%20%3D%20cmake%20AND%20project%20%3D%20Mesos%20AND%20status%20in%20(Open%2C%20Accepted)) (all of these except those mentioned above are in still in review since last week). 18 | 1. **[No change since last week]** Mesos Container (job object) support for the Windows launcher is up for review. Next step is wiring up resource limit APIs. 19 | 1. **[No change since last week]** Windows Container (Docker) support has been integrated. 20 | 21 | ## Main accomplishments this week 22 | 23 | This sprint is to reset our Monday schedule, as the last sprint was posted [late last week](2017-02-17.md), so there are no accomplishments to report on. Our tentative April 1st goals are: 24 | 25 | 1. Turn on `-Werror` i.e. treat warnings as errors, and have an error/warning free build. 26 | 1. Bring build times to a tolerable level (less than five minutes for a clean build), probably by introducing pre-compiled headers. 27 | 1. Wire up resource limit APIs to the Mesos Containers using job objects. 28 | 1. Port remaining tests (this is currently vague, we will have add specifices by March). 29 | 1. Move to Visual Studio 2017 (in order to unblock Mesos moving past C++11). 30 | 31 | ## Focus for the upcoming week 32 | 33 | * **[hausdorff]** Introduce CMake solution to dev mailing list and have deprecation discussion. 34 | * **[andschwa]** Complete [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690). 35 | * **[andschwa]** Integrate Glog stack traces into Mesos crashes [CONSOLIDATED, might have to happen after the `WindowsLauncher` code is integrated.] 36 | * **[andschwa]** Remove Glog redefinition warning. 37 | * **[jeffaco]** Benchmark pre-compiled headers build speed improvements, and continue onboarding. 38 | * **[johnkord]** Create a test filter for stout tests that use `symlink` on Windows, and continue onboarding. 39 | -------------------------------------------------------------------------------- /sprints/2017-01-20.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-01-13 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Goals for March 1 6 | 7 | 1. **Light up all critical-path tests for Windows agent that are currently posisble, given existing Windows agent feature set.** 8 | 1. **Integrate tests into CI (Mesosphere has agreed to do this and support it).** 9 | 1. **Bring CMake system to feature completeness required to have the autotools deprecation conversation.** (Note that deprecating autotools will be a multi-week or multi-month discussion, and will likely involve more technical work to complete, for example, bug fixes.) 10 | 1. **Add support for resource limit APIs in the Windows launcher.** 11 | 1. **Integrate Windows Container support.** 12 | 13 | ## Current progress on these goals since early December 14 | 15 | 1. About 50% of our tests are now lit up in Apache master branch. About 80% of the critical-path tests that can currently be supported (_e.g._, those that do not require auth or persistence in the master) are either in review or checked in. A complete list of critical path tests is [here](https://issues.apache.org/jira/browse/MESOS-6695), though this does include stuff like the auth tests. 16 | 1. Mesosphere has lit up the build CI this week. They have gotten side-tracked on lighting up the test CI because of some critical bugs. The 17 | 1. Two known issues remain for CMake feature completeness, [MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396) and [MESOS-6814](https://issues.apache.org/jira/browse/MESOS-6814). The list of issues remaining on this issue is [here](https://issues.apache.org/jira/issues/?jql=(labels%20%3D%20windows-mvp%20OR%20labels%20%3D%20microsoft)%20and%20labels%20%3D%20cmake%20AND%20project%20%3D%20Mesos%20AND%20status%20in%20(Open%2C%20Accepted)) (all of these except those mentioned above are in review). 18 | 1. Andy actively working on the resource limit APIs patch. He will be out part of next week, so it's not clear when this work will be completed. 19 | 1. We have not started the work integrating `dpravat`'s Windows Containers work into `master`. 20 | 21 | ## Main accomplishments this week 22 | 23 | * **Greatly progress closing the gap on CMake feature completeness.** 24 | * MSFT has produced 12 patches ([55599](https://reviews.apache.org/r/55599/), [55600](https://reviews.apache.org/r/55600/), [55601](https://reviews.apache.org/r/55601/), [55602](https://reviews.apache.org/r/55602/), [55604](https://reviews.apache.org/r/55604/), [55607](https://reviews.apache.org/r/55607/), [55632](https://reviews.apache.org/r/55632/), [55637](https://reviews.apache.org/r/55637/), [55694](https://reviews.apache.org/r/55694/), [55695](https://reviews.apache.org/r/55695/), [55696](https://reviews.apache.org/r/55696/), [55748](https://reviews.apache.org/r/55748/)), and IBM has produced 2 ([55686](https://reviews.apache.org/r/55686/), [55657](https://reviews.apache.org/r/55657/)). 25 | * Together, this leaves 2 tickets left ([MESOS-3396](https://issues.apache.org/jira/browse/MESOS-3396), [MESOS-6814](https://issues.apache.org/jira/browse/MESOS-6814)) on the [outstanding dashboard](https://issues.apache.org/jira/issues/?jql=(labels%20%3D%20windows-mvp%20OR%20labels%20%3D%20microsoft)). 26 | * After these are checked in, we expect to introduce it to the community, collect bugs and features from the community, and then, after the multi 27 | * **About ~90% of the critical path tests we need to light up, are now lit up.** 28 | * This week's review [5550](https://reviews.apache.org/r/55550/) caps off this work. 29 | 30 | ## Focus for the upcoming week 31 | 32 | * **[dpravat]** Is busy these next few weeks with his Azure Stack work. We will need to pick up making sure mpark's file descriptor changes work with the end-to-end tests, as well as the work to eliminate warnings. 33 | * **[hausdorff]** Will probably pick up most of this work, we need to sync with `dpravat` to transition this. 34 | * **[andschwa]** Complete [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690), and continue onboarding. 35 | * **[andschwa]** Integrate glog stack traces into Mesos crashes [CONSOLIDATED, might have to happen after the `WindowsLauncher` code is integrated.] -------------------------------------------------------------------------------- /sprints/2016-12-09.md: -------------------------------------------------------------------------------- 1 | # Work log 2016-12-09 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Accomplished this week 6 | 7 | The main focus of work this week was related to [MESOS-6717](https://issues.apache.org/jira/browse/MESOS-6717), which is focused on fixing bugs and issues blocking running the Agent and Master, in the Mesos test harness, on Windows, natively. Our primary accomplishments are: 8 | 9 | * **Speeding up Agent tests by ~10-15%, on all platforms.** (See [here](https://reviews.apache.org/r/54493/).) 10 | * **Submitting reviews that should do almost all of the work required to resolve [MESOS-6717](https://issues.apache.org/jira/browse/MESOS-6717), and checking in about 70% of those reviews into the Apache `master` branch.** (See below.) 11 | * **Onboarding new developers!** (Andrew's first bug fix is [here](https://github.com/apache/mesos/commit/fc9a3bbf2c7a34ea2fb00992c94284114b02b6dc).) 12 | 13 | A more particular breakdown follows. 14 | 15 | * We have fixed a dozen or so bugs or build breaks blocking the Agent, master, or test harness from being built (specifically, [1](fc9a3bbf2c7a34ea2fb00992c94284114b02b6dc), [2](800c629a81dea3002ce5b1e1e29f5479813d64eb), [3](dbffa9d8f9e5ee4cb52b2d4489b1f45b1ddbe3b8), [4](49ccd13fa9cd50adaf11b4aff913a002e8b27cab), [5](60b9f2fff082a52cab02be4d96fa2d4df0261ad0), [6](007f91b49060384a9f5c14375b40688d1b89c0bf), [7](cd1ad28e3baafa22f108830907819be0d727a6b0), [8](cd1ad28e3baafa22f108830907819be0d727a6b0), [9](96e39e04e9618272b8562e2475ce2a46cd770987), [10](fe67ca79ba2fb1da64017226661c63ec8a9441d8), [11](1648491e2f194f5ba9d62cb1e099066fb7f16272), [12](b5b1ead3a8c28b8b65f514fd7b030324a735a26d), and [13](4c0e453296e3ac7c5eda48a98eb7ad570c303d0a)), and several more are in review (specifically: [1](https://reviews.apache.org/r/54515/), [2](https://reviews.apache.org/r/54335/), [3](https://reviews.apache.org/r/54610/), [4](https://reviews.apache.org/r/54514/), [4](https://reviews.apache.org/r/54490/), [5](https://reviews.apache.org/r/54519/), [6](https://reviews.apache.org/r/54489/), [6](https://reviews.apache.org/r/54493/), and [7](https://reviews.apache.org/r/53706/)). 16 | * After these are checked in, we shoudl be able to resolve [MESOS-6717](https://issues.apache.org/jira/browse/MESOS-6717) (the most major issue we focused on this week), as well as those that block it, particularly [MESOS-6761](https://issues.apache.org/jira/browse/MESOS-6761). 17 | * MESOS-6717 blocks the rest of the tests issues; once it goes in, there are a few tests that are ready to be committed as well, particularly [MESOS-6701](https://issues.apache.org/jira/browse/MESOS-6701) (see [review](https://reviews.apache.org/r/54611/)). 18 | 19 | ## Focus for the upcoming week 20 | 21 | Our goals for this week are: 22 | 23 | * **[dpravat]** Come up with a proposal for [MESOS-5849](https://issues.apache.org/jira/browse/MESOS-5849). 24 | * This is one of our most-requested issues, and also quite invasive. 25 | * **[dpravat]** Resolve warning so we can effectively integrate with the Mesos CI. [MESOS-5821](https://issues.apache.org/jira/browse/MESOS-5821). 26 | * (Daniel is working on this in his free time, so this may not happen :)) 27 | * **[hausdorff]** Resolve [MESOS-6717](https://issues.apache.org/jira/browse/MESOS-6717). 28 | * Exit criteria are that we should be able to run at least one "interesting" Agent tests out of Apache `master` branch (_i.e._, we need to launch an Agent in the test harness, and have it connect to the Master). 29 | * **[hausdorff]** Add all "trivial" tests to the Agent build. Trivial tests are things like the [recordio review](https://reviews.apache.org/r/54611/), which require no major semantic changes to code to make them work. 30 | * **[hausdorff]** Somewhat-accurate timeline for the Agent command tests. 31 | * Tracked: [MESOS-6698](https://issues.apache.org/jira/browse/MESOS-6698). 32 | * Exit criteria is that we understand roughly what is stopping `command_executor_tests.cpp` from building and passing on Windows. 33 | * **[hausdorff]** Bonus goal: understand why [critical path tests](https://issues.apache.org/jira/browse/MESOS-6695) are failing, and have a timeline for them, too. 34 | * **[andschwa]** Develop plan and timeline for [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690), and continue onboarding. 35 | * Proposal: concentrate on making sure we understand core abstractions, rather than delivering features at this point. 36 | -------------------------------------------------------------------------------- /sprints/2017-01-13.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-01-13 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Medium-term goals 6 | 7 | As a reminder, the general goals for the early December/late January timeframe were agreed to focus almost entirely on stabilization: 8 | 9 | 1. **Dramatically increase code coverage on the Windows agent.** When we started, there were almost no tests enabled for the Windows build of the agent. 10 | 1. **Onboard team members from Mike Neil's org.** 11 | 1. **Complete the CMake build system, deprecate the autotools build system.** 12 | 1. **Pave the way for adding agent authentication on Windows.** 13 | 14 | ## Current progress on these goals since early December 15 | 16 | 1. About 50% of our tests are now lit up in Apache master branch. By Monday, most of our critical path tests will be in review or checked in. Mesosphere has committed to lighting up all of this in the CI system this week and next week. 17 | 1. Andy is close to releasing his first important feature patch, replacing the prototype-quality `WindowsLauncher` with something that will work with the Mesos resource limit APIs. 18 | 1. CMake progress will start late next week (probably). 19 | 1. No progress on authentication, yet. This will be our first big new feature after stabilization. 20 | 21 | ## Accomplished this week 22 | 23 | The work this week continues to focus primarily on stabilization, specifically increasing test coverage on Windows code paths, making sure end-to-end tests work with ongoing changes to important infrastructure (particularly file descriptor patches): 24 | 25 | Our main accomplishments are: 26 | * **`DefaultExecutor` and `CommandExecutor` tests are lit up and in review, with all patches needed for bugs they uncovered.** 27 | * Tracked mostly in [MESOS-6698](https://issues.apache.org/jira/browse/MESOS-6698) and [MESOS-6870](https://issues.apache.org/jira/browse/MESOS-6870). This resolves [MESOS-6839](https://issues.apache.org/jira/browse/MESOS-6839), which blocks a lot of our tests. 28 | * The last review in this chain is [#53313](https://reviews.apache.org/r/55313/). This review caps off a 20-review chain that fixes all the remaining issues. 29 | * **Impact:** This directly blocked many other tests, including the rest of the `slave_tests.cpp`, so this was extremely crucial. 30 | * **Added many critical path tests from [MESOS-6695](https://issues.apache.org/jira/browse/MESOS-6695).** 31 | * Particularly GC tests in [#55328](https://reviews.apache.org/r/55328/), and the health checker tests. 32 | * Still work to be done: a lot of the tests in this list are tests that won't be lit up until we port the fetcher and add authentication. 33 | * **Added Windows builds to the CI, but not Windows tests.** This was entirely Mesosphere, but it's worth calling out anyway. 34 | * **Much of the work for a permanent version `WindowsLauncher` is in place, but none in review yet.** 35 | * `andschwa`'s first big feature. 36 | * **Impact:** This is the second-to-last feature we require for our alpha release. (The other being `dpravat`'s Windows Containers.) 37 | 38 | ## Focus for the upcoming week 39 | 40 | * **[dpravat]** Make sure mpark's file descriptor changes work with the end-to-end tests. [CONSOLIDATED FROM LAST WEEK, since the build was broken by separate commits each day for most of this week.] 41 | * **[dpravat]** [CONSOLIDATED FROM LAST WEEK] Work to approve get the long paths proposal approved by the core team this week. 42 | * (Daniel is working on this in his free time, so this may not happen :)) 43 | * **[dpravat]** [CONSOLIDATED FROM LAST WEEK] Resolve warning so we can effectively integrate with the Mesos CI. [MESOS-5821](https://issues.apache.org/jira/browse/MESOS-5821). 44 | * (Daniel is working on this in his free time, so this may not happen :)) 45 | * **[hausdorff]** Work with Joseph to integrate the long backlog of patches that are up in my name. 46 | * **[hausdorff]** Complete critical path tests. 47 | * **[hausdorff]** Start working with `dpravat` to bring the Windows Container support in. 48 | * **[hausdorff]** [CONSOLIDATED FROM LAST WEEK] Work with Srini (at IBM) to check in the Python and Java protobuf builds in CMake (depending on his and Joseph's availability). 49 | * Exit criteria: should be able to build Java and Python protobuf bindings on POSIX. 50 | * **[andschwa]** Complete [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690), and continue onboarding. 51 | * **[andschwa]** Integrate glog stack traces into Mesos crashes. -------------------------------------------------------------------------------- /sprints/2017-01-05.md: -------------------------------------------------------------------------------- 1 | # Work log 2017-01-05 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Recap of progress so far 6 | 7 | Since many people came back from holiday break on Tuesday or Wednesday, this week it is especially important to consider whether our priorities are correct so that we can be prepared to execute next week. 8 | 9 | As a reminder, the general goals for the next ~2 months that we agreed on in early December were: 10 | 11 | 1. **Dramatically increase code coverage on the Windows agent.** When we started, there were almost no tests enabled for the Windows build of the agent. 12 | 1. **Onboard team members from the Open Source Technology Center.** 13 | 1. **Complete the CMake build system, deprecate the autotools build system.** 14 | 1. **Pave the way for adding agent authentication on Windows.** 15 | 16 | In the last few weeks, we have come a long way towards accomplishing goal (1), having lit up more than 500 tests, which is nearly half of the test cases. For goal (2), `andschwa` has submitted a few patches, and is starting to take on larger responsibilities. For goal (3), we are actively working with IBM to complete the CMake work, and hope to have real results in the next few weeks. 17 | 18 | Overall, this is good progress, and we are on track to accomplishing our goals for the early March timeframe. 19 | 20 | ## Accomplished this week 21 | 22 | The work this week continues to focus primarily on stabilization, specifically increasing test coverage on Windows code paths, making sure end-to-end tests work with ongoing changes to important infrastructure (particularly file descriptor patches), and getting ready to execute on a plan for CI integration, hopefully next week. 23 | 24 | Our main accomplishments are: 25 | * **Completing about 80% of the work required to light up the executor tests.** (See final review in the chain [here](https://reviews.apache.org/r/54677/).) 26 | * Tracked mostly in [MESOS-6698](https://issues.apache.org/jira/browse/MESOS-6698) and [MESOS-6870](https://issues.apache.org/jira/browse/MESOS-6870). 27 | * Most of the work is capped in a 13-review chain ending at [#55162](https://reviews.apache.org/r/55162/), and by Monday, we will have about 75% of the executor tests lit up in `default_executor_tests.cpp` and `command_executor_tests.cpp`. 28 | * **Impact:** This directly blocks many other tests, including the rest of the `slave_tests.cpp`. 29 | * **Resolved thundering herd bug in agent and framework registration causing about 34 tests to fail on Windows.** Captured in [MESOS-6803](https://issues.apache.org/jira/browse/MESOS-6803). 30 | * Specifically affects [MESOS-6714](https://issues.apache.org/jira/browse/MESOS-6714), but also affects partition tests, API tests, reservation tests, the rest of the slave tests, and so on. 31 | * **Added Windows stack tracing to `glog`.** Pull request is [here](https://github.com/google/glog/pull/151). Once integrated into Mesos, this will cause Agent crashes to emit stack traces. 32 | * Mesos integration should be up Friday or Monday. 33 | 34 | ## Focus for the upcoming week 35 | 36 | Because of holiday break, we will consolidate some of the tasks that were dropped since last time: 37 | 38 | * **[dpravat]** Make sure mpark's file descriptor changes work with the end-to-end tests. 39 | * **[dpravat]** [CONSOLIDATED FROM LAST WEEK] Work to approve get the long paths proposal approved by the core team this week. 40 | * (Daniel is working on this in his free time, so this may not happen :)) 41 | * **[dpravat]** [CONSOLIDATED FROM LAST WEEK] Resolve warning so we can effectively integrate with the Mesos CI. [MESOS-5821](https://issues.apache.org/jira/browse/MESOS-5821). 42 | * (Daniel is working on this in his free time, so this may not happen :)) 43 | * **[hausdorff]** Resolve [MESOS-6839](https://issues.apache.org/jira/browse/MESOS-6839). 44 | * Exit criteria: user should be able to successfully request that any task spawned with either the command executor or the default executor can be killed by Mesos successfully. This should no longer be a blocker for `command_executor_tests.cpp` and `default_executor_tests.cpp`. 45 | * **[hausdorff]** Work with Srini (at IBM) to check in the Python and Java protobuf builds in CMake (depending on his and Joseph's availability). 46 | * Exit criteria: should be able to build Java and Python protobuf bindings on POSIX. 47 | * **[andschwa]** Integrate glog stack traces into Mesos crashes. 48 | * **[andschwa]** [CONSOLIDATED FROM LAST WEEK] Develop plan and timeline for [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690), and continue onboarding. 49 | * Proposal: concentrate on making sure we understand core abstractions, rather than delivering features at this point. 50 | -------------------------------------------------------------------------------- /notes/development.md: -------------------------------------------------------------------------------- 1 | Windows Development 2 | =================== 3 | 4 | This document is just a set of notes from my experience onboarding with Mesos development for Windows. 5 | 6 | APIs 7 | ---- 8 | 9 | We are targetting Microsoft Nano Server. 10 | Specifically, this means we are restricted to the set of Windows APIs available on Nano, 11 | [Nano Server APIs](https://msdn.microsoft.com/en-us/library/mt588480(v=vs.85).aspx). 12 | An example of an *excluded and unavailable* set of APIs is `Shell32.dll` AKA ``. 13 | 14 | When using system APIs, we prefer to prefix with the global namespace `::`. 15 | 16 | Unicode 17 | ------- 18 | 19 | Mesos is explicitly compiled with `UNICODE` and `_UNICODE` preprocess defintions, 20 | forcing the use of the wide `wchar_t` versions of ambiguous APIs. 21 | Nonetheless, developers should be explicit when using an API: 22 | use `::SetCurrentDirectoryW` over the ambiguous macro `::SetCurrentyDirectory`. 23 | 24 | When converting from `std::string` to `std::wstring`, do not reinvent the wheel! 25 | Use the `wide_stringify()` and `stringify()` functions from [`stringify.hpp`](https://github.com/apache/mesos/blob/master/3rdparty/stout/include/stout/stringify.hpp). 26 | 27 | NTFS Long Path Support 28 | ---------------------- 29 | 30 | Mesos has built-in NTFS long path support. 31 | On Windows, the usual maximum path is (about, because it varies per API) 255 characters. 32 | This is unusable because Mesos uses directories with GUIDs, and easily exceeds this limitation. 33 | To support this, we use the Unicode versions of the Windows APIs, 34 | and explicitly preprend the long path marker `\\?\` to any path sent to these APIs. 35 | 36 | The pattern, when using a Windows API which takes a path, is to: 37 | 38 | 1. Use the wide version of the API (suffixed with `W`). 39 | 2. Ensure the API supports long paths (check MSDN for the API). 40 | 3. Use `::internal::windows::longpath(std::string path)` to safely convert the path. 41 | 4. Only use the `longpath` for Windows APIs, or internal Windows API wrappers. 42 | 43 | For an example, see 44 | [`chdir.hpp`](https://github.com/apache/mesos/blob/master/3rdparty/stout/include/stout/os/windows/chdir.hpp). 45 | 46 | The long path marker is found in 47 | [`longpath.hpp`](https://github.com/apache/mesos/blob/master/3rdparty/stout/include/stout/internal/windows/longpath.hpp). 48 | 49 | Running Unit Tests 50 | ------------------ 51 | 52 | Assuming you have the Visual Studio solution for Mesos open, 53 | find the project `mesos-tests` in the Solution Explorer. 54 | Right-click it and choose "Set as StartUp Project." 55 | This will cause the normal build and debugging commands 56 | (i.e. `F5` or the "green arrow") to build and run the unit tests. 57 | 58 | By default, this will run all of the unit tests. 59 | Because the agent (and thus many of the tests) attempts to make symbolic links, 60 | Visual Studio needs to be opened as an administrator 61 | (this may change in the future if Windows stops requiring permissions for symlinks). 62 | 63 | To run a subset of tests, 64 | you need to run the `mesos-tests` runner with the flag 65 | `--gtest_filter="TestCaseName.TestName"`. 66 | (See [GoogleTest](https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#running-a-subset-of-the-tests).) 67 | You _can_ do this on the command line, 68 | but you can also edit the `mesos-tests` project properties, 69 | under the "Debugging" section, 70 | and add this argument to "Command Arguments." 71 | This will now run the specific test when you press `F5` (or the green arrow). 72 | Note that parameterized unit tests will have longer names, 73 | these can be run using wildcards, 74 | e.g. `--gtest_filter="*DefaultExecutorTest*.*"`. 75 | 76 | Visual Studio will close the console window in which the tests were ran, 77 | but you can add a break point to the last line of the `main` function to keep it open. 78 | 79 | When running unit tests, you will want to set in your environment `GLOG_v=3` , 80 | and pass `--verbose` to the test runner. This will enable all the log output. 81 | 82 | Handles 83 | ------- 84 | 85 | The Windows API is flawed and has multiple invalide semantic values for the `HANDLE` type, 86 | i.e. some APIs return `-1` or `INVALID_HANDLE_VALUE`, and other APIs return `nullptr`. 87 | It is simply [inconsistent](https://blogs.msdn.microsoft.com/oldnewthing/20040302-00/?p=40443), 88 | and so developers must take extra caution when checking handles returned from the Windows APIs, 89 | double check against the documentation which value will indicate it is invalid. 90 | 91 | Using raw handles (or indeed raw pointers anywhere) in C++ is treachorous. 92 | Mesos has a `SafeHandle` class which should be used immediately when obtaining a `HANDLE` 93 | from a Windows API, with the deleter likely set to `::CloseHandle`. 94 | 95 | TODO 96 | ---- 97 | * examples 98 | * hashset/hashmap 99 | * try/option and operators 100 | * style 101 | -------------------------------------------------------------------------------- /sprints/2016-12-15.md: -------------------------------------------------------------------------------- 1 | # Work log 2016-12-09 2 | 3 | As always, the current-work dashboard is [here](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654#). 4 | 5 | ## Accomplished this week 6 | 7 | Our work this week primarily focused on stabilization, and in particular lighting up tests on Windows builds in the Apache `master` branch (which is possible only now that we've gotten the Master working on Windows). We accomplished all of our major work goals for this week ([see goals here](https://github.com/hausdorff/mesos-msft-log/blob/master/sprints/2016-12-09.md#focus-for-the-upcoming-week)), with some minor consolidations to minor objectives. 8 | 9 | Our main accomplishments are: 10 | * **Lighting up and enabling 497 tests (out of about ~1300 total) on Windows builds from the Apache `master` branch.** (See final review in the chain [here](https://reviews.apache.org/r/54677/).) 11 | * This involved finally resolving [MESOS-6717](https://issues.apache.org/jira/browse/MESOS-6717), capping off a few weeks' work. 12 | * Some of these passing tests come from [#54618](https://reviews.apache.org/r/54618/), which enables all trivially-passing tests, and in particular resolving 36% of our ["critical path" test issues](https://issues.apache.org/jira/browse/MESOS-6695), specifically issues [MESOS-6700](https://issues.apache.org/jira/browse/MESOS-6700), [MESOS-6701](https://issues.apache.org/jira/browse/MESOS-6701), [MESOS-6704](https://issues.apache.org/jira/browse/MESOS-6704), [MESOS-6710](https://issues.apache.org/jira/browse/MESOS-6710), [MESOS-6711](https://issues.apache.org/jira/browse/MESOS-6711), and [MESOS-6716](https://issues.apache.org/jira/browse/MESOS-6716). This also complese our goal to light up all trivially-passing tests in the Apache `master` branch. 13 | * Some of these passing tests come from [#54677](https://reviews.apache.org/r/54677/), which makes significant progress on open issues [MESOS-6698](https://issues.apache.org/jira/browse/MESOS-6698), [MESOS-6699](https://issues.apache.org/jira/browse/MESOS-6699), [MESOS-6703](https://issues.apache.org/jira/browse/MESOS-6703), [MESOS-6705](https://issues.apache.org/jira/browse/MESOS-6705), [MESOS-6706](https://issues.apache.org/jira/browse/MESOS-6706), [MESOS-6707](https://issues.apache.org/jira/browse/MESOS-6707), [MESOS-6709](https://issues.apache.org/jira/browse/MESOS-6709), [MESOS-6715](https://issues.apache.org/jira/browse/MESOS-6715). 14 | * We exceeded our goal to have at least one nontrivial agent test lit up, and **lit up ~71% of agent tests in `slave_tests.cpp` alone.** 15 | * This was days of work, capped off by [#54677](https://reviews.apache.org/r/54677/). 16 | * **We identified and created a realistic roadmap for the remaining "interesting" agent tests.** 17 | * For example, a lot of this is captured in [MESOS-6803](https://issues.apache.org/jira/browse/MESOS-6803), a bug that is preventing 45 more tests from working on Windows. There is a realistic timeline in place for resolving it. 18 | * **We created [a proposal](https://docs.google.com/document/d/12osjcB6lr0yaL-d9tbzF5awSTtQb9cVYHYvhhpoKxmY/edit) for dealing with the long paths issue, [MESOS-5849](https://issues.apache.org/jira/browse/MESOS-5849).** 19 | * **We have [begun documenting](https://github.com/hausdorff/mesos-msft-log/pull/1) the process of connecting Windows agents to the master, and running tasks on them.** After stabilization, this will probably end up as an issue list to make the process smoother, or it will become part of standard documentation. 20 | * **We continue to onboard new developers.** andschwa has completed a few [starter](https://github.com/apache/mesos/commit/3b61aaea36c778a936c645cd4a7270f8498ef6bd) [bugs](https://github.com/apache/mesos/commit/a0f5caa2f1562a0d7f0247fd1940ed76e5b0f878), and johnkord has had his [first patch](https://github.com/apache/mesos/commit/b6c18c1bd77f3b06832d371c57f29dfb75ea5b26) accepted. 21 | 22 | ## Focus for the upcoming week 23 | 24 | This week people will start dropping out for holiday breaks, so **we do not expect progress to make it into `master` necessarily.** That in mind, our goals for this week are: 25 | 26 | * **[dpravat]** Work to approve get the long paths proposal approved by the core team this week. 27 | * **[dpravat]** [CONSOLIDATED FROM LAST WEEK] Resolve warning so we can effectively integrate with the Mesos CI. [MESOS-5821](https://issues.apache.org/jira/browse/MESOS-5821). 28 | * (Daniel is working on this in his free time, so this may not happen :)) 29 | * **[hausdorff]** Resolve [MESOS-6803](https://issues.apache.org/jira/browse/MESOS-6803). 30 | * Exit criterion: we should have added `delay` to the authentication codepath in `Slave::detected`, and all 45 of the tests listed should still pass (on POSIX; on Windows they should at least not fail for the reason listed in this issue. :)) in Apache `master` (or at least in RB, for after the holiday break). 31 | * **[hausdorff]** Work with Srini (at IBM) to check in the Python and Java protobuf builds in CMake (depending on his and Joseph's availability). 32 | * Exit criteria: should be able to build Java and Python protobuf bindings on POSIX. 33 | * **[hausdorff]** Work to develop timeline for the remainder of `slave_tests.cpp`. 34 | * Exit criteria: we only have about 29% of the tests left in that file, so absent deep bugs, closing this out should involve at least understanding approximately where the first-order bugs are. 35 | * **[andschwa]** [CONSOLIDATED FROM LAST WEEK] Develop plan and timeline for [MESOS-6690](https://issues.apache.org/jira/browse/MESOS-6690), and continue onboarding. 36 | * Proposal: concentrate on making sure we understand core abstractions, rather than delivering features at this point. 37 | * **[johnkord]** Submit a starter patch for [MESOS-5937](https://issues.apache.org/jira/browse/MESOS-5937). 38 | * Same proposal as for `andschwa`. I recommend emphasizing understanding rather than delivering features, at this point. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Work log for Microsoft's Mesos core team 2 | 3 | This repository is meant to help coordinate Microsoft's Mesos core team. It serves as a reference for useful resources (useful for onboarding, _etc_.), as well as a log of progress and plans week-to-week. 4 | 5 | __Please note that this log is out-of-date as I have switched to using JIRA exclusively.__ 6 | 7 | ## Quick links 8 | 9 | * [Issue Dashboard][issues] 10 | * [Unassigned Windows issues][windows-issues] 11 | * [Mesos on Windows Epic][windows epic] 12 | * [CMake Build System Epic][cmake epic] 13 | * [Windows Agent Tests Epic][agent tests epic] 14 | * [Review Board][] 15 | * [Slack][] 16 | 17 | [issues]: https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12327654# 18 | [windows-issues]: https://issues.apache.org/jira/browse/MESOS-3246?filter=12340579 19 | [windows epic]: https://issues.apache.org/jira/browse/MESOS-3094 20 | [cmake epic]: https://issues.apache.org/jira/browse/MESOS-898 21 | [agent tests epic]: https://issues.apache.org/jira/browse/MESOS-6695 22 | [review board]: https://reviews.apache.org/dashboard/ 23 | [slack]: https://mesos.slack.com/messages/windows/ 24 | 25 | ## Onboarding Resources 26 | 27 | Onboarding usually consists of two steps: (1) getting all the things you need to contribute (including accounts on community-hosted bug trackers, and stuff), and (2) getting a bug and submitting your first patch. Here we discuss both of these. 28 | 29 | ### Getting Started 30 | 31 | New developers should: 32 | 33 | * Build Mesos from source, using the directions in the [Getting Started](https://mesos.apache.org/gettingstarted/) guide. 34 | * NOTE: because Windows doesn't have a package manager, our build system will download some of the Mesos dependencies from a canonical resource [here](https://github.com/3rdparty/mesos-3rdparty). If you accidentally trigger a rebuild of one of those, CMake may try to download those repositories, which can be particularly annoying if you're somewhere without an Internet connection. To prevent this, you should point CMake at a local copy of htis repository: just `git clone` that URL, and configure pass the flag `-D3RDPARTY_DEPENDENCIES=[path to repo]`, and CMake will get the tarballs from there instead. 35 | * Create community accounts with directions [here](http://mesos.apache.org/community/). Specifically: 36 | * Sign up for the dev@ and user@ lists. 37 | * Create an account on the Mesos Slack, join the #windows and #cmake channels. (Post general dev questions to #dev rather than #general, as #general is more for user questions.) Ping me (@andschwa) when you get there if you want a friendly face. 38 | * Create accounts with the Mesos instances of JIRA (bug tracking), and Review Board (code reviews). Please use the same handle. 39 | * NOTE: If you want to retain these emails in the event you eventually leave Microsoft, you might consider using your personal email rather than your @microsoft email. Since it's all open source anyway, these emails won't contain business-sensitive information. 40 | 41 | ### Submitting a patch 42 | 43 | Mesos has a reasonably complete [submission guide](http://mesos.apache.org/documentation/latest/submitting-a-patch/), so you should read that to learn about the submission process. Generally, if you're planning on helping Microsoft's planned work roadmap, then the process is a bit more streamlined than if you were starting from scratch: 44 | 45 | * After you join the Mesos Slack (see the "Getting Started" section, ping @hausdorff to get a starter bug. Probably you will add yourself to the [contributors.yaml](https://github.com/apache/mesos/blob/master/docs/contributors.yaml) to start. 46 | * You can then follow the guide above to learn how to push the patch to RB. Be sure to attach `hausdorff` to the review. 47 | * Particularly worth noting is the Mesos [C++ style guide](http://mesos.apache.org/documentation/latest/c++-style-guide/), which is lightly adapted from Google's C++ style guide. Mesos as a project is pretty strict about maintaining this style, so it's important to make an extra effort to follow it. 48 | * You should be aware that all reviews are public, so if you need to discuss something business-sensitive, it's best to not do that in a code review. 49 | * After you submit your patch, it will be reviewed and if that goes well, a committer will eventually commit the work to the Apache `master` branch. 50 | 51 | ## Tracking work 52 | 53 | Mesos uses JIRA to track work. We divide work tracking into two big tasks: maintaining a comprehsive backlog of work that needs to be done at some point, and maintaining a list of issues we're currently working on. Here we describe both of these things. 54 | 55 | ### The Comprehensive List of Work 56 | 57 | Currently, Microsoft's work in aggregate mostly falls into 3 buckets: 58 | 59 | * **Work done to make Windows support production-worthy in Mesos core.** The list of outstanding known issues is [here][windows epic]. This list is meant to be comprehensive, but in practice it is hard to keep up, so some issues have gotten stale, and others are missing. 60 | * So far, the major work that needs to be done is: (1) remove the dependency on APIs that do not support long paths, (2) add Agent authentication, and (3) complete the work to support Windows Container. 61 | * **Work done to light up all the Agent tests on Windows.** The list of critical-path tests to port is [here][agent tests epic]. Historically, this has been hard because we had to make the Master work on Windows in order to be able to even run Agent tests. Now that that's done, our remaining work focuses mostly on the tests themselves. 62 | * Beyond that, there are many more-optional tests we will need to prioritze and also light up. 63 | * **Work done to make the build system cross-platform.** The list of known issues is [here][cmake epic]. Historically Mesos has relied on an autotools-based build system. This obviously won't work for Windows, so part of the Windows effort involved rewriting the build system in CMake, so that it can work on Windows. This is pretty far along, and once we are done, we expect to deprecate the autotools solution. 64 | 65 | ### Current Work 66 | 67 | A dashboard of issues we are planning to work on over the next month or two are [here][issues]. As of now (2016/12/09), this work is mostly devoted to completing points (2) and (3) from above. In particular, this dashboard is meant to track progress on two important goals: 68 | 69 | * To make all critical tests build and pass on Windows, and to have this fully integrated into official Mesos CI solutions. 70 | * To begin to deprecate the autotools-based build solution, and replace it with our new CMake system. 71 | -------------------------------------------------------------------------------- /notes/deployment.md: -------------------------------------------------------------------------------- 1 | # Deploying Mesos on Windows 2 | 3 | These notes document how I managed to launch a task on a Windows agent. 4 | This requires setup of multiple components, 5 | and building Mesos from a patched branch. 6 | 7 | ## Master setup 8 | 9 | Before getting to the Mesos Agent on Windows, 10 | first we need a Mesos master setup, 11 | and a framework that allows deployment of simple applications. 12 | The [Marathon](https://mesosphere.github.io/marathon/) framework is an 13 | easy-to-use web application that allows you to launch a task like `notepad` on an agent. 14 | Depending on the version of Marathon, 15 | it [may not be able](https://github.com/mesosphere/marathon/issues/2950) 16 | to run without [ZooKeeper](https://zookeeper.apache.org/). 17 | Regardless, I set it up with ZooKeeper, 18 | so these instructions will include it. 19 | These are loosely adapted from 20 | [Digital Ocean's guide](https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04). 21 | 22 | Marathon, ZooKeeper, and the Mesos master should run on a Linux box, 23 | in my case CentOS 7. 24 | 25 | ### ZooKeeper 26 | 27 | ZooKeeper is just a layer that provides coordination for distributed systems. 28 | If we were running more than one instance of the Mesos master or Marathon, 29 | then ZooKeeper would provide the information necessary to choose the correct 30 | instance among a set of redunant servers. 31 | I am only using one instance each of Marathon and the Mesos master, 32 | but setup ZooKeeper as it is somewhat expected by the other components. 33 | Not using ZooKeeper is an edge case where Marathon and Mesos master 34 | need to be run in standalone mode. 35 | 36 | * Download [zookeeper-3.4.10.tar.gz](https://zookeeper.apache.org/releases.html#download) 37 | from one of the provided mirrors. 38 | * Extract the tarball. 39 | * Deploy the sample configuration. 40 | * Run ZooKeeper. 41 | 42 | ```sh 43 | wget https://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz 44 | tar -xzf zookeeper-3.4.10.tar.gz 45 | cd zookeeper-3.4.10 46 | 47 | cp conf/zoo_sample.cfg conf/zoo.cfg 48 | 49 | ./bin/zkServer.sh start-foreground 50 | ``` 51 | 52 | The default configuration uses `/tmp/zooKeeper` for storage, 53 | whichi is fine for demonstration purposes. 54 | The default port is `2181`. 55 | Both Mesos and Marathon will connect to ZooKeeper, 56 | so it needs to be running first. 57 | 58 | A quick terminology explanation: 59 | a path like `zk://192.0.2.1:2181/name` 60 | indicates a connection to the ZooKeeper instance 61 | at IP address `192.0.2.1`, port `2181`, znode `name`. 62 | According to the [ZooKeeper wiki](https://cwiki.apache.org/confluence/display/ZOOKEEPER/ProjectDescription), 63 | this `znode` is the term used for a view into the ZooKeeper virtual filesystem. 64 | By attaching multiple Mesos master instances to `zk://192.0.2.1:2181/mesos`, 65 | another service (like the Mesos agent or the Marathon framework) 66 | can refer to the collective group of instances by `zk://192.0.2.1:2181/mesos`, 67 | and so ZooKeeper acts as an intermediary so that the other services 68 | do not have to track the Mesos masters individually. 69 | 70 | ### Mesos master 71 | 72 | You probably already have Mesos built from source, 73 | and if so you should run the binaries you built. 74 | If you have not already built Mesos from source, 75 | please see the [Getting Started](https://mesos.apache.org/gettingstarted/) 76 | instructions to install all the prerequisites. 77 | 78 | * Download [mesos-1.1.0.tar.gz](https://mesos.apache.org/downloads/) from Apache. 79 | * Extract the tarball. 80 | * Build Mesos (with Java support). 81 | * Run the Mesos master and attach to ZooKeeper. 82 | 83 | ```sh 84 | wget http://www.apache.org/dist/mesos/1.3.0/mesos-1.3.0.tar.gz 85 | tar -xzf mesos-1.3.0.tar.gz 86 | cd mesos-1.3.0 87 | mkdir build 88 | cd build 89 | ../configure 90 | make 91 | 92 | mkdir /var/lib/mesos # ensure this has proper permissions 93 | ./bin/mesos-master.sh --ip=192.0.2.1 --work_dir=/var/lib/mesos --zk=zk://192.0.2.1:2181/mesos --quorum=1 94 | ``` 95 | 96 | Substitute the `192.0.2.1` with the IP address of the Linux machine 97 | on which these servers are running. 98 | The `--ip` option is the address to which the Mesos master will bind; 99 | the `--work_dir` option is non-optional; 100 | the `--zk` option is the connection information for ZooKeeper; 101 | finally the `--quorum` option is required when using ZooKeeper, 102 | and when using only one master process should be set to `1`. 103 | 104 | Note: if the machine is only addressable through a different IP address, 105 | e.g. it is behind a NAT, you need to add `--advertise_ip=172.0.0.1` 106 | with the IP that the agent should use to connect to the master. 107 | 108 | > The CMake system is not quite usable with Marathon yet as it requires the Java bindings. 109 | > The patch supporting this is written but not yet in the `master` branch. 110 | 111 | ### Marathon 112 | 113 | The last step on the Linux machine is launch Marathon. 114 | 115 | * Download [marathon-1.4.3.tgz](https://mesosphere.github.io/marathon/docs/). 116 | * Extract the tarball. 117 | * Run Marathon and attach it to Mesos and ZooKeeper. 118 | 119 | ```sh 120 | wget http://downloads.mesosphere.com/marathon/v1.4.3/marathon-1.4.3.tgz 121 | tar -xzf marathon-1.4.3.tgz 122 | cd marathon-1.4.3 123 | 124 | export MESOS_NATIVE_JAVA_LIBRARY=$HOME/mesos-1.3.0/build/src/.libs/libmesos.so 125 | ./bin/start --master zk://192.0.2.1:2181/mesos --zk zk://192.0.2.1:2181/marathon 126 | ``` 127 | 128 | Because we did not install Mesos, 129 | Marathon needs `MESOS_NATIVE_JAVA_LIBRARY` set to the location of the 130 | `libmesos.so` library built in the previous step, 131 | so adjust the path accordingly. 132 | Again, substitute `192.0.2.1` with the IP address of the Linux machine. 133 | The `--master` option points Marathon to the ZooKeeper znode of the Mesos master, 134 | allowing Marathon to find Mesos, 135 | and the `--zk` option points Marathon to the ZooKeeper znode of Marathon itself, 136 | allowing multiple Marathon instances to run at the same time 137 | (obviously not required if running standalone, but educational anyway). 138 | 139 | ## Checking services 140 | 141 | At this point, provided your firewall is off or the correct ports are allowed, 142 | you should be able to reach your Mesos instance at http://192.0.2.1:5050/, 143 | and your Marathon instance at http://192.0.2.1:8080. 144 | 145 | ## Agent setup 146 | 147 | See the [Windows docs](https://github.com/apache/mesos/blob/master/docs/windows.md) 148 | for more instructions on building the agent. 149 | 150 | ```powershell 151 | git clone git://git.apache.org/mesos.git 152 | cd mesos 153 | mkdir build 154 | cd build 155 | cmake .. -DENABLE_LIBEVENT=ON -DHAS_AUTHENTICATION=OFF -G "Visual Studio 15 2017 Win64" -T "host=x64" 156 | cmake --build . 157 | 158 | mkdir ~/work_dir 159 | .\src\mesos-agent.exe --master=zk://192.0.2.1:2181/mesos --ip=192.0.2.2 --work_dir=$HOME\work_dir --launcher_dir=C:\mesos\build\src --isolation=windows/cpu,filesystem/windows 160 | ``` 161 | 162 | There are several important points here: 163 | 164 | * We set the `--master` to the IP address of the `mesos-master` Linux node setup earlier. 165 | * We set the `--ip` to the Windows machine's IP address. 166 | * We set the `--work_dir` to a known created location. 167 | * We set the `--launcher_dir` to the location of the built binaries. 168 | This is required on Windows because the CMake build system does not yet set sane defaults. 169 | * We set the `--isolation` to the Windows CPU and filesystem isolators. 170 | 171 | Now go to Marathon at http://192.0.2.1:8080 and launch a task: 172 | 173 | * Click "Applications" in the top banner. 174 | * Click "Create Application" in the top right corner. 175 | * Enter an ID (e.g. "test-app"). 176 | * Enter a simple command for "command" (e.g. `ping google.com`). 177 | Note that if the task exits, it will be continuously relaunched. 178 | * Click "Create Application" at the bottom left of the popup box. 179 | 180 | It should start scheduling the task on the Windows agent. 181 | Check that the Windows agent is connected by listing the agents 182 | at your Mesos interface http://192.0.2.1:5050/#/agents. 183 | --------------------------------------------------------------------------------