[ 
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 
master@10.99.50.20: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 
master@10.99.50.20: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 
master@10.99.50.20: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)

Reply via email to