Skip to content

Celery 4.4.3 always trying create /var/run/celery directory, even if it's not needed. #6136

@kwist-sgr

Description

@kwist-sgr

Related Issues

#6017 Celery Multi creates pid and log files in the wrong directory

Environment & Settings

Celery version:

celery report Output:
# celery report

software -> celery:4.4.3 (cliffs) kombu:4.6.9 py:3.7.7
            billiard:3.6.3.0 py-amqp:2.6.0
platform -> system:Linux arch:64bit, ELF
            kernel version:4.19.0-8-amd64 imp:CPython
loader   -> celery.loaders.default.Loader
settings -> transport:amqp results:disabled

Steps to Reproduce

Required Dependencies

  • Minimal Celery Version: 4.4.3

Minimally Reproducible Test Case

celery multi start ... --pidfile=/var/run/demo/celeryd-%n.pid

Expected Behavior

celery runs

Actual Behavior

start failed

celery multi v4.4.3 (cliffs)
_annotate_with_default_opts: print options
OrderedDict([('--app', 'service.celery:app'),
             ('--pidfile', '/var/run/demo/celeryd-%n.pid'),
             ('--logfile', '/var/log/demo/celeryd-%n%I.log'),
             ('--loglevel', 'INFO'),
             ('--workdir', '/var/lib/demo-celery'),
             ('--events', None),
             ('--heartbeat-interval', '5'),
             ('--without-gossip', None),
             ('--queues', 'high'),
             ('--concurrency', '1'),
             ('-n', 'high@celeryd.worker')])
Traceback (most recent call last):
  File "/var/www/misc/ve-2006011156/bin/celery", line 8, in <module>
    sys.exit(main())
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/__main__.py", line 16, in main
    _main()
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/celery.py", line 322, in main
    cmd.execute_from_commandline(argv)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/celery.py", line 495, in execute_from_commandline
    super(CeleryCommand, self).execute_from_commandline(argv)))
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/base.py", line 305, in execute_from_commandline
    return self.handle_argv(self.prog_name, argv[1:])
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/celery.py", line 487, in handle_argv
    return self.execute(command, argv)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/celery.py", line 419, in execute
    ).run_from_argv(self.prog_name, argv[1:], command=argv[0])
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/celery.py", line 335, in run_from_argv
    return cmd.execute_from_commandline([command] + argv)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/multi.py", line 266, in execute_from_commandline
    return self.call_command(argv[0], argv[1:])
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/multi.py", line 273, in call_command
    return self.commands[command](*argv) or EX_OK
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/multi.py", line 143, in _inner
    return fun(self, *args, **kwargs)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/multi.py", line 151, in _inner
    return fun(self, self.cluster_from_argv(argv), **kwargs)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/multi.py", line 361, in cluster_from_argv
    _, cluster = self._cluster_from_argv(argv, cmd=cmd)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/bin/multi.py", line 366, in _cluster_from_argv
    return p, self.Cluster(list(nodes), cmd=cmd)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/apps/multi.py", line 306, in <genexpr>
    for name in names
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/apps/multi.py", line 314, in _node_from_options
    p.optmerge(namespace, options), p.passthrough)
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/apps/multi.py", line 136, in __init__
    options or OrderedDict())
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/apps/multi.py", line 145, in _annotate_with_default_opts
    self._setdefaultopt(options, ['--pidfile', '-p'], '/var/run/celery/%n.pid')
  File "/var/www/misc/ve-2006011156/lib/python3.7/site-packages/celery/apps/multi.py", line 159, in _setdefaultopt
    os.makedirs(dir_path)
  File "/var/www/misc/ve-2006011156/lib/python3.7/os.py", line 223, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/var/run/celery'

systemd[1]: demo@celeryd.service: Control process exited, code=exited, status=1/FAILURE

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions