Debian Patches

Status for celery/5.6.3-4

Patch Description Author Forwarded Bugs Origin Last update
0001-lsb-init.patch LSB compliant headers, status actions and ENABLED variable
Upstream ships it's own init scripts but they lack some LSB header and
the (optional) "status" action. This patch fixes this and also adds a
variable called ENABLED in /etc/default/celeryd.
Michael Fladischer <fladi@debian.org> no 2013-09-03
0002-privacy.patch Remove external assets from documentation.
Upstream includes a PayPal donation form in it's sphinx templates for which the
submit button used an external image and which was replaced by a simple
<button/> element. Also a gittip button is loaded inside an <iframe/> which is
removed. The logo image was loaded from the project website and is replaced
with the local image file.
Michael Fladischer <fladi@debian.org> not-needed 2024-10-04
0003-Set-shell-in-su-invocation.patch Set shell in su invocation
See Bug#824786: celeryd: Initscript doesn't start daemon,
http://bugs.debian.org/824786
Brian May <bam@debian.org> no 2016-05-25
0004-Disable-intersphinx-mapping-for-now.patch Disable intersphinx mapping for now.
The best way to fix network requests when building the documentation would be to
patch INTERSPHINX_MAPPING in sphinx_celery.conf in src:sphinx-celery.
Michael Fladischer <FladischerMichael@fladi.at> no 2017-07-31
0005-disable-test-for-python3.8.patch disable test for python3.8 Håvard Flaget Aasen <haavard_aasen@yahoo.no> no 2020-03-25
0006-remove-pytest-celery-from-test-depends.patch Remove pytest-celery from test depends Thomas Goirand <zigo@debian.org> no 2025-12-22
0007-allow-any-pytest-version.patch Allow any pytest version Thomas Goirand <zigo@debian.org> no 2025-12-22
0008-Satisfy-asinine-sphinx-7.x-parsing-logic-for-copyrig.patch Satisfy asinine sphinx 7.x parsing logic for copyright year substitution. Michael Fladischer <fladi@debian.org> no debian 2023-10-31
0009-pytest-no-strict-markers.patch Disable pytest --strict-markers
We don't have the `celery` marker, probably because pytest-celery isn't
packaged in Debian.
Colin Watson <cjwatson@debian.org> not-needed 2025-04-10
0010-pr9786-click-plugins.patch Vendor click-plugins, PyPI package no longer maintained. Bas Couwenberg <sebastic@xs4all.nl> yes upstream 2025-10-27
0011-Add-docstrings-to-click-subcommands.patch Add docstrings to click subcommands.
Fixes #1148092, as click-man expects each command and sub-command to have a docstring.
Michael Fladischer <fladi@debian.org> no 2026-09-20
0012-improve-fd-iteration.patch Fix --detach stalling in Docker containers with high fdmax (#9886) (#10080)

* Fix --detach stalling in Docker containers with high fdmax (#9886)

When using --detach in Docker containers, fd_by_path() would iterate
over all possible file descriptors. In containers, fdmax can be ~1
billion, causing the worker to stall for 1-2 hours.

This fix:
- Uses /proc/<pid>/fd on Linux to get actual open fds efficiently
- Falls back to iterating up to a capped limit (8192) on other systems

* Use /proc/self/fd and bound the /dev/fd fallback in fd_by_path()

- /proc/<getpid()>/fd resolves to a different process inside a PID
namespace whose /proc was not remounted; /proc/self/fd is resolved by
the kernel for the calling process.
- /dev/fd is only complete on macOS/illumos (FreeBSD devfs lists 0-2,
OpenBSD/NetBSD ship static nodes), so merge it with the bounded scan
instead of trusting it alone.
- Add tests for the /dev/fd fallback order and a partial /dev/fd listing.

* Enumerate open fds like CPython instead of capping the scan

The 8192 bound could drop matching descriptors, which breaks
fd_by_path()'s contract: DaemonContext.open() would then close a
descriptor it meant to keep. The bound was never necessary either --
fdmax is only ~1e9 in Linux containers, and those always have
/proc/self/fd.

Mirror CPython's FD_DIR (Modules/_posixsubprocess.c): /dev/fd on macOS,
Cygwin, FreeBSD and DragonFly, /proc/self/fd everywhere else, trusting
/dev/fd on FreeBSD and DragonFly only when fdescfs is mounted, since
devfs alone creates fd/0-2. Without a usable directory, scan the full
range(get_fdmax(2048)) as main does, so no platform regresses.

Add tests for a match above the old bound, reached both through the fd
directory and through the fallback scan, for the fdescfs branch, and a
subprocess test that detaches with fdmax reporting 1073741816.

* Add check for open file-descriptor directory in test

* Stop close_open_fds() from walking RLIMIT_NOFILE too

fd_by_path() was only one of two Python loops over range(get_fdmax())
on the daemonization path. The other is billiard's close_open_fds():
its try/except/else around `closerange = os.closerange` binds the
pure-Python reversed(range(...)) body on Python 3, so the previous
revision still stalled on the line after the one it fixed. The test
did not catch it because it stubbed the call out.

celery.platforms.close_open_fds() now closes only the descriptors
listed by _open_fds(), skipping keep, and falls back to billiard's
implementation where no fd directory exists. It is the name already
exported, so DaemonContext.open(), the SIGHUP restart and embedded
beat all pick it up.

The subprocess test runs the real DaemonContext with get_fdmax
patched in both modules, skips where no fd directory exists, and arms
signal.alarm(20) in the grandchild so a regression cannot leave it
spinning. Drop the Cygwin case: it is not in CPython's FD_DIR and
Cygwin has /proc/self/fd anyway.
이강은 no 2026-09-06

All known versions for source package 'celery'

Links