[
https://issues.apache.org/jira/browse/MESOS-10219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17334692#comment-17334692
]
acecile5555555 commented on MESOS-10219:
----------------------------------------
So... It seems 1.10.0 tag is a lot more windows-compliant but still requires a
lots of tweaks to get built:
h4. libarchive raising C4061: The enumerate has no associated handler in a
switch
I am not sure why I'm the only one reporting this failure but there's no hope
to get it built on my Windows 10 VM (from Azure) with latest Visual Studio
2019. Libarchive definitely have enums raising this issue and for some reason
this warning is explicitly converted into an error (/we4061).
Commenting this compiler flags from libarchive-3.3.2.patch fixes it.
h4. CMake Error: Problem with archive_read_open_file(): Unrecognized archive
format
This error has been reported as
https://issues.apache.org/jira/browse/MESOS-10140
Sadly, there's no mention of the actual fix but I found it in GIT history.
Cherry-picking dc87f8ca427876060afc4033424050de1058d769 fixes it.
h4. stout raising C2668: 'os::spawn': ambiguous call to overloaded function
This error has already been reported as
https://issues.apache.org/jira/browse/MESOS-10137
It can be partially fixed by cherry-picking
da08b0cc33d3b6b70a507348783a70ac863cb1dd but this is not enough, the same
pattern has been found in another file, see my attached patch.
h4. LNK2019: unresolved external symbol "int __cdecl os::execvp(char const
*,char * const * const)"
This error has also been reported as
https://issues.apache.org/jira/browse/MESOS-10206 and I found someone fixing it
on mailing list at
[https://lists.apache.org/x/thread.html/rb54832eac67aacb963a4cc924f9376facbbbdf3ce34958fd6a437abb@%3Cdev.mesos.apache.org%3E]
Applying manual this patch fixes the issue.
So... Finally I managed to get it build (see full diff attached, from 1.10.0
tag) and it seems to be running. I still don't know if it's actually usable but
that's a first step.
{noformat}
$ src/mesos-agent.exe
--master=zk://10.99.50.1:2181,10.99.50.2:2181,10.99.50.3:2181/mesos
--work_dir=C:\\mesos --launcher_dir= C:\\Users\\earthlab\\mesos\\build\\src
I0428 12:09:08.465437 7776 status_update_manager_process.hpp:1276] Build:
2021-04-28 10:11:47 UTC by earthlab
I0428 12:09:08.481106 7776 status_update_manager_process.hpp:1277] Version:
1.10.0
I0428 12:09:08.481106 7776 status_update_manager_process.hpp:1280] Git tag:
1.10.0
I0428 12:09:08.481106 7776 status_update_manager_process.hpp:1284] Git SHA:
1fb36dcc5a0099f147cd01bd82cd7b4f0aec2256
I0428 12:09:08.512306 7776 resolver.cpp:69] Creating default secret resolver
I0428 12:09:08.512306 7776 containerizer.cpp:317] Using isolation {
windows/cpu, filesystem/windows, windows/mem, environment_secret }
I0428 12:09:08.512306 7776 provisioner.cpp:294] Using default backend 'copy'
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@753: Client
environment:zookeeper.version=zookeeper C client 3.4.8
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@759: Client
environment:host.name=<not implemented>
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@768: Client
environment:os.name=<not implemented>
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@769: Client
environment:os.arch=<not implemented>
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@770: Client
environment:os.version=<not implemented>
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@776: Client
environment:user.name=<not implemented>
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@787: Client
environment:user.home=<not implemented>
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@log_env@794: Client
environment:user.dir=C:\Users\earthlab\mesos\build
2021-04-28 12:09:08,512:4324(0x1a0c):ZOO_INFO@zookeeper_init@827: Initiating
client connection, host=10.99.50.1:2181,10.99.50.2:2181,10.99.50.3:2181
sessionTimeout=10000 watcher=00007FF6FB260B55 sessionId=0 sessionPasswd=<null>
context=000002425B43C9E0 flags=0
2021-04-28 12:09:08,527:4324(0x2394):ZOO_INFO@check_events@1764: initiated
connection to server [10.99.50.1:2181]
[...]
I0428 12:09:08.672559 8680 containerizer.cpp:1162] Recovering isolators
I0428 12:09:08.672559 4212 containerizer.cpp:1201] Recovering provisioner
I0428 12:09:08.672559 1992 provisioner.cpp:518] Provisioner recovery complete
I0428 12:09:08.672559 1636 slave.cpp:8205] Recovering executors
I0428 12:09:08.672559 1636 slave.cpp:8358] Finished recovery
I0428 12:09:08.684085 1992 task_status_update_manager.cpp:181] Pausing sending
task status updates
I0428 12:09:08.684085 2920 slave.cpp:1471] New master detected at
[email protected]:5050
I0428 12:09:08.684085 6304 status_update_manager_process.hpp:379] Pausing
operation status update manager
I0428 12:09:08.684085 2920 slave.cpp:1525] No credentials provided. Attempting
to register without authentication
I0428 12:09:08.684085 2920 slave.cpp:1536] Detecting new master
I0428 12:09:08.778162 1636 slave.cpp:1696] Registered with master
[email protected]:5050; given agent ID 73745431-e672-46a4-8852-50830e4580bb-S33
I0428 12:09:08.778162 2052 task_status_update_manager.cpp:188] Resuming
sending task status updates
I0428 12:09:08.778162 4212 status_update_manager_process.hpp:385] Resuming
operation status update manager
W0428 12:09:08.793808 1636 slave.cpp:10064] Persisting resource provider
manager state is not supported on Windows
I0428 12:09:08.793808 1636 slave.cpp:1783] Forwarding agent update
{"operations":{},"resource_providers":{},"resource_version_uuid":{"value":"zKFtTfmITCKHhk0o9uL0qQ=="},"slave_id":{"value":"73745431-e672-46a4-8852-50830e4580bb-S33"},"update_oversubscribed_resources":false}
W0428 12:09:08.793808 1636 slave.cpp:1765] Already registered with master
[email protected]:5050
I0428 12:09:08.793808 1636 slave.cpp:1783] Forwarding agent update
{"operations":{},"resource_providers":{},"resource_version_uuid":{"value":"zKFtTfmITCKHhk0o9uL0qQ=="},"slave_id":{"value":"73745431-e672-46a4-8852-50830e4580bb-S33"},"update_oversubscribed_resources":false}
2021-04-28 12:09:18,606:4324(0x2394):ZOO_WARN@zookeeper_interest@1597: Exceeded
deadline by 11ms
I0428 12:10:08.638969 6668 slave.cpp:7638] Current disk usage 32.10%. Max
allowed age: 4.053271815407014day{noformat}
I understand that Windows port is not a priority, I actually never though
myself someone would ask me to investigate that but hey, shit happens :D.
Would you consider including the provided patches in 1.10.1 maintenance
released ? I do think it would make sense to have at least one tag known and
tagged as buildable on Windows, in case someone else is interested in such
experiments.
Best regards, Adam.
> 1.11.0 does not build on Windows
> --------------------------------
>
> Key: MESOS-10219
> URL: https://issues.apache.org/jira/browse/MESOS-10219
> Project: Mesos
> Issue Type: Bug
> Components: agent, build, cmake
> Affects Versions: 1.11.0
> Reporter: acecile5555555
> Priority: Major
>
> Hello,
>
> I just tried building Mesos 1.11.0 on Windows and this is not working.
>
> The first issue is libarchive compilation that can be easily workarounded by
> adding the following hunk to 3rdparty/libarchive-3.3.2.patch:
> {noformat}
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -137,7 +137,7 @@
> # This is added into CMAKE_C_FLAGS when CMAKE_BUILD_TYPE is "Debug"
> # Enable level 4 C4061: The enumerate has no associated handler in a switch
> # statement.
> - SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4061")
> + #SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4061")
> # Enable level 4 C4254: A larger bit field was assigned to a smaller bit
> # field.
> SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4254")
> {noformat}
> Sadly it is failing later with issue I cannot solve myself:
> {noformat}
> C:\Users\earthlab\mesos\src\csi/state.hpp(22,10): fatal error C1083: Cannot
> open include file: 'csi/state.pb.h': No such file or directory (compiling
> source file C:\Users\earthlab\mesos\src\slave\csi_server.cpp)
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> qos_controller.cpp
> resource_estimator.cpp
> slave.cpp
> state.cpp
> task_status_update_manager.cpp
> sandbox.cpp
> C:\Users\earthlab\mesos\src\csi/state.hpp(22,10): fatal error C1083: Cannot
> open include file: 'csi/state.pb.h': No such file or directory (compiling
> source file C:\Users\earthlab\mesos\src\slave\slave.cpp)
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> composing.cpp
> isolator.cpp
> C:\Users\earthlab\mesos\src\csi/state.hpp(22,10): fatal error C1083: Cannot
> open include file: 'csi/state.pb.h': No such file or directory (compiling
> source file C:\Users\earthlab\mesos\src\slave\task_status_update_manager.cpp)
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> isolator_tracker.cpp
> launch.cpp
> C:\Users\earthlab\mesos\src\csi/state.hpp(22,10): fatal error C1083: Cannot
> open include file: 'csi/state.pb.h': No such file or directory (compiling
> source file C:\Users\earthlab\mesos\src\slave\containerizer\composing.cpp)
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> launcher.cpp
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp(524,34):
> error C2668: 'os::spawn': ambiguous call to overloaded function
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> C:\Users\earthlab\mesos\3rdparty\stout\include\stout/os/exec.hpp(52,20):
> message : could be 'Option<T> os::spawn(const std::string &,const
> std::vector<std::string,std::allocator<std::string>> &)'
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> with
> [
> T=int
> ] (compiling source file
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp)
> C:\Users\earthlab\mesos\3rdparty\stout\include\stout/os/windows/exec.hpp(412,20):
> message : or 'Option<T> os::spawn(const std::string &,const
> std::vector<std::string,std::allocator<std::string>> &,const
> Option<std::map<std::string,std::string,std::less<std::string>,std::allocator<std::pair<const
> std::string,std::string>>>> &)'
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> with
> [
> T=int
> ] (compiling source file
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp)
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp(525,75):
> message : while trying to match the argument list '(const char [3],
> initializer list)' [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp(893,47):
> error C2668: 'os::spawn': ambiguous call to overloaded function
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> C:\Users\earthlab\mesos\3rdparty\stout\include\stout/os/exec.hpp(52,20):
> message : could be 'Option<T> os::spawn(const std::string &,const
> std::vector<std::string,std::allocator<std::string>> &)'
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> with
> [
> T=int
> ] (compiling source file
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp)
> C:\Users\earthlab\mesos\3rdparty\stout\include\stout/os/windows/exec.hpp(412,20):
> message : or 'Option<T> os::spawn(const std::string &,const
> std::vector<std::string,std::allocator<std::string>> &,const
> Option<std::map<std::string,std::string,std::less<std::string>,std::allocator<std::pair<const
> std::string,std::string>>>> &)'
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> with
> [
> T=int
> ] (compiling source file
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp)
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launch.cpp(893,47):
> message : while trying to match the argument list '(const std::string,
> std::vector<std::string,std::allocator<std::string>>)'
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> launcher_tracker.cpp
> C:\Users\earthlab\mesos\src\csi/state.hpp(22,10): fatal error C1083: Cannot
> open include file: 'csi/state.pb.h': No such file or directory (compiling
> source file
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launcher.cpp)
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> mount.cpp
> switchboard.cpp
> C:\Users\earthlab\mesos\src\csi/state.hpp(22,10): fatal error C1083: Cannot
> open include file: 'csi/state.pb.h': No such file or directory (compiling
> source file
> C:\Users\earthlab\mesos\src\slave\containerizer\mesos\launcher_tracker.cpp)
> [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> environment_secret.cpp
> posix.cpp
> backend.cpp
> provisioner.cpp
> store.cpp
> authenticatee.cpp
> authenticator.cpp
> auxprop.cpp
> basic_authenticatee.cpp
> basic_authenticator_factory.cpp
> combined_authenticator.cpp
> acls.cpp
> build.cpp
> command_utils.cpp
> protobuf_utils.cpp
> resource_quantities.cpp
> resources_utils.cpp
> roles.cpp
> type_utils.cpp
> exec.cpp
> v0_v1executor.cpp
> files.cpp
> hdfs.cpp
> checker.cpp
> checker_process.cpp
> health_checker.cpp
> devolve.cpp
> evolve.cpp
> logging.cpp
> framework.cpp
> maintenance.cpp
> master.cpp
> quota.cpp
> quota_handler.cpp
> readonly_handler.cpp
> registry_operations.cpp
> weights.cpp
> weights_handler.cpp
> allocator.cpp
> hierarchical.cpp
> offer_constraints_filter.cpp
> C:\Users\earthlab\mesos\src\master\allocator\mesos\offer_constraints_filter.cpp(26,10):
> fatal error C1083: Cannot open include file: 're2/re2.h': No such file or
> directory [C:\Users\earthlab\mesos\build\src\mesos.vcxproj]
> messages.cpp
> daemon.cpp
> driver.cpp
> disk_profile_adaptor.cpp
> sched.cpp
> scheduler.cpp
> resolver.cpp
> in_memory.cpp
> operation.cpp
> curl.cpp
> hadoop.cpp
> usage.cpp
> mesos.cpp
> version.cpp
> whitelist_watcher.cpp
> authentication.cpp
> group.cpp
> cpu.cpp
> mem.cpp
> windows.cpp{noformat}
> If you're interested in getting it built, I'll keep my Windows VM for a
> moment.
> I'm restarting with older version to see if it goes better.
>
> Best regards, Adam.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)