Details

    • Epic Name:
      windows

      Description

      The ultimate goal of this is to have all containerizer tests running and passing on Windows Server.

      1. It must build (see MESOS-898).
      2. All OS-specific code (that is touched by the containerizer) must be ported to Windows.
      3. The containizer itself must be ported to Windows, alongside the MesosContainerizer.

      Note: Isolation (cgroups) will probably not exist on Windows.

        Issue Links

          Issues in Epic

            Activity

            Hide
            tnachen Timothy Chen added a comment -

            Which containerizer are you referring to in this ticket?

            Show
            tnachen Timothy Chen added a comment - Which containerizer are you referring to in this ticket?
            Hide
            kaysoky Joseph Wu added a comment -

            This will be a separate one for Windows, parallel to the MesosContainerizer. It will be similar to the DockerContainerizer.

            Show
            kaysoky Joseph Wu added a comment - This will be a separate one for Windows, parallel to the MesosContainerizer. It will be similar to the DockerContainerizer.
            Hide
            jvanremoortere Joris Van Remoortere added a comment -
            commit cc0b6ea87f2ca9bb2d51d18f189b8d1bccc1c7a1
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:08:03 2015 -0700
            
                Fixed CMake build compile error; don't compile GMock with cxx11 flag.
                
                Right now if you try to compile GMock a non-Windows platform using the
                CMake build system, it will error out. The problem seems to be the CXX11
                flag.
                
                This commit will solve this problem by removing that flag.
                
                Review: https://reviews.apache.org/r/37370
            
            commit 588b94e7806b4fb5ad2abb02b6229405858eef76
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:07:56 2015 -0700
            
                Added firewall.cpp to the process library CMakeLists.
                
                Right now, if you try to build on a non-Windows machine with CMakeLists,
                you'll get a linker error claiming that we can't find a symbol from the
                process library's firewall.cpp.
                
                This commit simply adds that source file, which fixes the problem.
                
                Review: https://reviews.apache.org/r/37369
            
            commit 788580cd808c998b6ae472c27bf8728ca37bf280
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:07:46 2015 -0700
            
                Cleaned up stout/windows.hpp.
                
                Review: https://reviews.apache.org/r/37368
            
            commit 066a5a8000b98199aa799c53def7ccbff76a82a6
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:07:34 2015 -0700
            
                Modernized the Stout tests CMakeLists file.
                
                Now that other people are starting to attempt to compile Stout on
                Windows, it's important that we give them a CMakeLists file that
                explicitly compiles the parts of Stout we're willing to support.
                
                Review: https://reviews.apache.org/r/37345
            
            commit 989eca4db7301f8cdae37cc9f801095ff0061929
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:07:21 2015 -0700
            
                Implemented stout/os/windows/exists.hpp.
                
                Review: https://reviews.apache.org/r/37344
                
            commit 3b03427790a9d443c677bbbebd6016b798302b1e
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:07:06 2015 -0700
            
                Extended permissions.hpp to work on both Windows and POSIX.
                
                Review: https://reviews.apache.org/r/37032
            
            commit 342f2b301ef42dee3077351db8debdc054e32848
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:06:49 2015 -0700
            
                Implemented os::close for Windows.
                
                Review: https://reviews.apache.org/r/37031
            
            commit 92ed652bf179fb93f9040602c2e8d74a90bb7114
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:06:25 2015 -0700
            
                Modified definitions in windows.hpp to fit real compilation problems.
                
                Essentially, there are some definitions that need to be there, and some
                that are not quite right.
                
                This commit adds and removes the definitions required to get the ip
                tests to pass. We also add some nice comments.
                
                Review: https://reviews.apache.org/r/37030
            
            commit 069f2e3b9ae28b54b6fd550f65662022726c7b73
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:06:15 2015 -0700
            
                Removed glog signal handler installation on Windows.
                
                glog declares, but does not define the function
                `google::InstallFailureSignalHandler`. If you try to compile a call to
                this function, you will get a linker error.
                
                Since we can't use it, this commit will remove that code on Windows.
                
                Review: https://reviews.apache.org/r/37021
                
            commit 66b6ab84091428f2f3391887e29fbfe9ad14b64f
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:06:07 2015 -0700
            
                Transitioned Windows builds to use glog v0.3.4.
                
                To get Stout tests to compile on Windows, it is necessary to upgrade the
                glog dependency to 0.3.4 (which will allow you to compile with MSVC
                1800), and then port glog 0.3.4 to support compiling with MSVC 1900
                (which Mesos requires). The code comments explain why we can't compile
                with 1800 and link simply have Mesos link to it.
                
                Note that we have supplied the MSVC 1900 port to the glog project, under
                pull request #43[1].
                
                The longer story follows:
                
                glog v0.3.3 will not build on Windows for a few reasons that are fixed
                in the 0.3.4 release. (For example, `algorithms` is not included in one
                file the requires it.)
                
                Since 0.3.4 appears to only fix bugs, and because there appear to be no
                major changes in (e.g.) the ABI, I believe this is a safe change to
                make. Additionally, when we ported it to compile on MSVC 1900, we didn't
                want to re-write the changes they made in 0.3.4 to make it run on MSVC
                1800, so this was a natural starting point for us.
                
                I choose not to attempt to upgrade the Linux glog dependency, either in
                the CMake solution, or in the autotools solution, for 3 reasons.
                
                (1) I don't want to ask the community reconsider its dependency choices
                    on the basis that an experimental Windows port requires a more
                    recent version.
                (2) We are currently rebundling the glog library as a binary, which
                    means that a solution will be somewhat involved (i.e., either we
                    have to change the patch command we're running on glog, or we have
                    to change the binary)
                (3) We can easily support both versions in CMake using the very powerful
                    macro system, which will allow us download the dependency on Windows
                    machines and use the tarball on other systems.
                
                Footnotes:
                [1] https://github.com/google/glog/pull/43
                
                Review: https://reviews.apache.org/r/37020
                
            commit 3446c25ca9450807c2547d829412162282e38038
            Author: Alex Clemmer <clemmer.alexander@gmail.com>
            Date:   Thu Sep 10 12:05:59 2015 -0700
            
                Changed build commands for 3rdparty libs to be no-ops in Windows.
                
                Largely a reverse of a previous commit. We previously removed the quotes
                from around some interpolated variables, to instead make them regular
                variable expansions, but in their context (they expand to build commands
                for third-party libraries) we now know that this doesn't work on all
                platforms for all versions of CMake.
                
                A longer explanation of the technical issue is in the code comments.
                
                Review: https://reviews.apache.org/r/37019
            
            Show
            jvanremoortere Joris Van Remoortere added a comment - commit cc0b6ea87f2ca9bb2d51d18f189b8d1bccc1c7a1 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:08:03 2015 -0700 Fixed CMake build compile error; don't compile GMock with cxx11 flag. Right now if you try to compile GMock a non-Windows platform using the CMake build system, it will error out. The problem seems to be the CXX11 flag. This commit will solve this problem by removing that flag. Review: https: //reviews.apache.org/r/37370 commit 588b94e7806b4fb5ad2abb02b6229405858eef76 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:07:56 2015 -0700 Added firewall.cpp to the process library CMakeLists. Right now, if you try to build on a non-Windows machine with CMakeLists, you'll get a linker error claiming that we can't find a symbol from the process library's firewall.cpp. This commit simply adds that source file, which fixes the problem. Review: https: //reviews.apache.org/r/37369 commit 788580cd808c998b6ae472c27bf8728ca37bf280 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:07:46 2015 -0700 Cleaned up stout/windows.hpp. Review: https: //reviews.apache.org/r/37368 commit 066a5a8000b98199aa799c53def7ccbff76a82a6 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:07:34 2015 -0700 Modernized the Stout tests CMakeLists file. Now that other people are starting to attempt to compile Stout on Windows, it's important that we give them a CMakeLists file that explicitly compiles the parts of Stout we're willing to support. Review: https: //reviews.apache.org/r/37345 commit 989eca4db7301f8cdae37cc9f801095ff0061929 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:07:21 2015 -0700 Implemented stout/os/windows/exists.hpp. Review: https: //reviews.apache.org/r/37344 commit 3b03427790a9d443c677bbbebd6016b798302b1e Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:07:06 2015 -0700 Extended permissions.hpp to work on both Windows and POSIX. Review: https: //reviews.apache.org/r/37032 commit 342f2b301ef42dee3077351db8debdc054e32848 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:06:49 2015 -0700 Implemented os::close for Windows. Review: https: //reviews.apache.org/r/37031 commit 92ed652bf179fb93f9040602c2e8d74a90bb7114 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:06:25 2015 -0700 Modified definitions in windows.hpp to fit real compilation problems. Essentially, there are some definitions that need to be there, and some that are not quite right. This commit adds and removes the definitions required to get the ip tests to pass. We also add some nice comments. Review: https: //reviews.apache.org/r/37030 commit 069f2e3b9ae28b54b6fd550f65662022726c7b73 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:06:15 2015 -0700 Removed glog signal handler installation on Windows. glog declares, but does not define the function `google::InstallFailureSignalHandler`. If you try to compile a call to this function, you will get a linker error. Since we can't use it, this commit will remove that code on Windows. Review: https: //reviews.apache.org/r/37021 commit 66b6ab84091428f2f3391887e29fbfe9ad14b64f Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:06:07 2015 -0700 Transitioned Windows builds to use glog v0.3.4. To get Stout tests to compile on Windows, it is necessary to upgrade the glog dependency to 0.3.4 (which will allow you to compile with MSVC 1800), and then port glog 0.3.4 to support compiling with MSVC 1900 (which Mesos requires). The code comments explain why we can't compile with 1800 and link simply have Mesos link to it. Note that we have supplied the MSVC 1900 port to the glog project, under pull request #43[1]. The longer story follows: glog v0.3.3 will not build on Windows for a few reasons that are fixed in the 0.3.4 release. (For example, `algorithms` is not included in one file the requires it.) Since 0.3.4 appears to only fix bugs, and because there appear to be no major changes in (e.g.) the ABI, I believe this is a safe change to make. Additionally, when we ported it to compile on MSVC 1900, we didn't want to re-write the changes they made in 0.3.4 to make it run on MSVC 1800, so this was a natural starting point for us. I choose not to attempt to upgrade the Linux glog dependency, either in the CMake solution, or in the autotools solution, for 3 reasons. (1) I don't want to ask the community reconsider its dependency choices on the basis that an experimental Windows port requires a more recent version. (2) We are currently rebundling the glog library as a binary, which means that a solution will be somewhat involved (i.e., either we have to change the patch command we're running on glog, or we have to change the binary) (3) We can easily support both versions in CMake using the very powerful macro system, which will allow us download the dependency on Windows machines and use the tarball on other systems. Footnotes: [1] https: //github.com/google/glog/pull/43 Review: https: //reviews.apache.org/r/37020 commit 3446c25ca9450807c2547d829412162282e38038 Author: Alex Clemmer <clemmer.alexander@gmail.com> Date: Thu Sep 10 12:05:59 2015 -0700 Changed build commands for 3rdparty libs to be no-ops in Windows. Largely a reverse of a previous commit. We previously removed the quotes from around some interpolated variables, to instead make them regular variable expansions, but in their context (they expand to build commands for third-party libraries) we now know that this doesn't work on all platforms for all versions of CMake. A longer explanation of the technical issue is in the code comments. Review: https: //reviews.apache.org/r/37019

              People

              • Assignee:
                lilyfang Li Li
                Reporter:
                kaysoky Joseph Wu
                Shepherd:
                Benjamin Hindman
              • Votes:
                0 Vote for this issue
                Watchers:
                14 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Development