I was debugging a mesos installation and came across this in the
mesos-master.error log

E0730 22:09:32.288753   178 containerizer.cpp:556] Failed to determine
the canonical path for the mesos-fetcher
'/usr/local/libexec/mesos/mesos-fetcher': No such file or directory


The issue is that when you try to then launch a task you get a (w/ c++-filt)

$ c++filt 
_ZNSt5_BindIFPFiRKSsPPcRKN7process10Subprocess2IOES8_S8_PN2os7ExecEnvERK6OptionISt8functionIFivEEEPiSJ_SJ_ESsS3_S6_S6_S6_SB_SG_SJ_SJ_SJ_EE6__callIiJEJLm0ELm1ELm2ELm3ELm4ELm5ELm6ELm7ELm8ELm9EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE
int std::_Bind<int (*(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, char**, process::Subprocess::IO,
process::Subprocess::IO, process::Subprocess::IO, os::ExecEnv*,
Option<std::function<int ()> >, int*, int*,
int*))(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, char**, process::Subprocess::IO const&,
process::Subprocess::IO const&, process::Subprocess::IO const&,
os::ExecEnv*, Option<std::function<int ()> > const&, int*, int*,
int*)>::__call<int, , 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul,
9ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul,
6ul, 7ul, 8ul, 9ul>)



which is basically impossible to realize that the error is here:

https://github.com/apache/mesos/blob/master/3rdparty/libprocess/src/subprocess.cpp#L177

and that the source is that the fetcher is missing.

Eventually i diff'ed a working copy of a filesystem and found that
/usr/local/libexec/mesos was missing.


Technically this isn't an error w/ mesos as in if the executables are in
place, things will run smoothly. However, if part of mesos is not in the
environment, then is the consensus to just 'attempt' to work instead of
failing fast. i.e.: failing on startup with a log that says?

mesos-fetcher missing, please check /usr/local/libexec/mesos (default)

Just a thought.

Reply via email to