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.

