mesos / chronos

Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules
http://mesos.github.io/chronos/
Apache License 2.0
4.39k stars 529 forks source link

Error after upgrading to mesos 0.26 #608

Open teodor-pripoae opened 8 years ago

teodor-pripoae commented 8 years ago

Hi,

I upgraded to latest mesos available from mesosphere ubuntu repositories. Chronos is still at 2.4.0, also installed from mesosphere repo.

My jobs are failing, I can see this in the sandbox section in the mesos UI

Missing required option --launcher_dir

Usage: mesos-docker-executor [options]

  --container=VALUE                    The name of the docker container to run.

  --docker=VALUE                       The path to the docker executable.

  --docker_socket=VALUE                The UNIX socket path to be used by docker CLI for accessing docker
                                       daemon.

  --external_log_file=VALUE            Specified the externally managed log file. This file will be
                                       exposed in the webui and HTTP api. This is useful when using
                                       stderr logging as the log file is otherwise unknown to Mesos.
  --[no-]help                          Prints this help message (default: false)
  --[no-]initialize_driver_logging     Whether to automatically initialize Google logging of scheduler
                                       and/or executor drivers. (default: true)
  --launcher_dir=VALUE                 Directory path of Mesos binaries. Mesos would find health-check,
                                       fetcher, containerizer and executor binary files under this
                                       directory.
  --log_dir=VALUE                      Directory path to put log files (no default, nothing
                                       is written to disk unless specified;
                                       does not affect logging to stderr).
                                       NOTE: 3rd party log messages (e.g. ZooKeeper) are
                                       only written to stderr!
  --logbufsecs=VALUE                   How many seconds to buffer log messages for (default: 0)
  --logging_level=VALUE                Log message at or above this level; possible values: 
                                       'INFO', 'WARNING', 'ERROR'; if quiet flag is used, this 
                                       will affect just the logs from log_dir (if specified) (default: INFO)
  --mapped_directory=VALUE             The sandbox directory path that is mapped in the docker container.

  --[no-]quiet                         Disable logging to stderr (default: false)
  --sandbox_directory=VALUE            The path to the container sandbox holding stdout and stderr files
                                       into which docker container logs will be redirected.
  --stop_timeout=VALUE                 The duration for docker to wait after stopping a running container
                                       before it kills that container.
{
  "schedule": "R/2015-11-16T00:01:00Z/P1D",
  "scheduleTimeZone": "Europe/Bucharest",
  "name": "my-app-name",
  "container": {
    "type": "DOCKER",
    "image": "my/img:2.0",
    "network": "BRIDGE",
  },
  "cpus": "0.1",
  "mem": "128",
  "disk": "0",
  "uris": [],
  "shell": false,
  "command": "/my/cmd",
  "arguments": [],
}
aladagemre commented 8 years ago

I had the same problem and found this issue.

On your slave machines create a text file: "/etc/mesos-slave/launcher_dir" with the content: "/usr/bin" if you've installed mesos with apt-get.

If you are running meos-slave directly, provide the --launcher_dir=/usr/bin

Maybe upgrade could create this for us but it seems it didn't.

ejether commented 8 years ago

That didn't work for me. I'm installed on Ubuntu 14.04 from the PPA, my launcher dir is /usr/libexec/mesos but even with the /etc/mesos-slave/launcher_dir present and with the correct path, I still get that error with 0.26.

I've downgraded to 0.25

aladagemre commented 8 years ago

You should put /usr/libexec as launch_dir. not /usr/libexec/mesos.

ejether commented 8 years ago

I'll give that a shot, thanks

Boran commented 8 years ago

Hi. I upgrade from 0.25 to on 0.27 on Ubuntu 14.04 and hit this issue. The fix that worked was:

stop mesos-slave
echo "/usr/libexec/mesos" > /etc/mesos-slave/launcher_dir
start mesos-slave
caussourd commented 8 years ago

I had the same issue and it was due to the fact that the mesos slaves were still running 0.25.