mesos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Till Toenshoff (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MESOS-1000) Clang build broken on 0.18.0 master
Date Thu, 13 Feb 2014 23:08:21 GMT

    [ https://issues.apache.org/jira/browse/MESOS-1000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13900852#comment-13900852
] 

Till Toenshoff commented on MESOS-1000:
---------------------------------------

Re 3) I think we are missing a deferred overload for C++11. Adding a const Future<Option<int>>&
to the parameter list of "exited" as well as adding a lambda::_1 to the defer call mentioned
above fixes this particular issue. In other words, defer on a future must have its type supplied
in the list of parameters for the current C++11 version.

Which then opens a hole new can of worms - clang nagging all around;

4) mesos_containerizer.cpp:818 needs to get some extra braces:
(future.isFailed() ? future.failure() : "discarded future")

5)  ../../src/slave/containerizer/mesos_containerizer.cpp:397:6: note: in instantiation of
function template specialization 'process::Future<Nothing>::then<process::_Deferred<std::__1::__bind<process::Future<int>
      (std::__1::function<process::Future<int> (const mesos::ContainerID &, const
mesos::ExecutorInfo &, std::__1::function<int ()> &, const mesos::SlaveID &,
bool, int)>::*)(const mesos::ContainerID &, const
      mesos::ExecutorInfo &, std::__1::function<int ()> &, const mesos::SlaveID
&, bool, int) const, std::__1::function<process::Future<int> (const mesos::ContainerID
&, const mesos::ExecutorInfo &,
      std::__1::function<int ()> &, const mesos::SlaveID &, bool, int)>,
mesos::ContainerID &, mesos::ExecutorInfo &, std::__1::function<int ()> &,
mesos::SlaveID &, bool &, int &> > >' requested here
    .then(defer(self(),

At this point I stopped patching, hoping that RR 18090 will fix things.

> Clang build broken on 0.18.0 master
> -----------------------------------
>
>                 Key: MESOS-1000
>                 URL: https://issues.apache.org/jira/browse/MESOS-1000
>             Project: Mesos
>          Issue Type: Bug
>          Components: libprocess
>    Affects Versions: 0.18.0
>         Environment: Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
>            Reporter: Till Toenshoff
>              Labels: clang, stout
>
> There are at least three new issues preventing mesos to build on clang.
> 1. ../../src/slave/containerizer/mesos_containerizer.hpp:174:8: error: 'mesos::internal::slave::MesosContainerizerProcess::exited'
hides overloaded virtual function [-Werror,-Woverloaded-virtual]
> That one is rather easy to overcome; simply add something like the following to that
header;
>   // Prevent clang warning on hidden overloaded virtual function.
>   using process::ProcessBase::exited;
> 2. ../../src/slave/containerizer/launcher.cpp:120:12: error: conversion from 'Unreachable'
to 'Try<pid_t>' is ambiguous
> Can overcome by a nasty but simple disambiguation of the returned value by updating that
line towards:
>   static_cast<Try<int> >(UNREACHABLE());
> In this case, I guess it would be better to revisit the Unreachable implementation.
> 3. ../../src/slave/containerizer/mesos_containerizer.cpp:220:18: error: no matching function
for call to 'defer'
> For that one, I am still trying to find out which overload of defer would be the best
match and hence should possibly be updated accordingly.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message