Skip to content

Rebuild gumloop-celery on celery 5.6.3 (5.6.3+gumloop_0.2.0) - #4

Merged
kdassharma merged 170 commits into
mainfrom
main-rebuild-5.6.3
Jul 14, 2026
Merged

Rebuild gumloop-celery on celery 5.6.3 (5.6.3+gumloop_0.2.0)#4
kdassharma merged 170 commits into
mainfrom
main-rebuild-5.6.3

Conversation

@kdassharma

@kdassharma kdassharma commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

auvipy and others added 30 commits July 10, 2025 12:48
Replace deprecated datetime.utcfromtimestamp() with datetime.fromtimestamp()
using timezone.utc. The deprecated method was removed in Python 3.12+.

Also fix test timezone handling to create proper UTC timestamps and
update assertions to expect timezone-aware datetime format.

Fixes failing tests:
- test_on_event_task_received
- test_on_event_non_task
* Dockerfile Build Optimizations

* Update docker/Dockerfile

* Review Fixes

---------

Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
pytest-celery is a plugin with a different API, this page is about celery.contrib.pytest plugin.
* Revert "Use Django DB max age connection setting"

This reverts commit f0c9b40.

This reverts PR celery#6134 and stops using the close_if_unusable_or_obsolete API since there are edge cases where it's
unable to detect if a connection if actually unusable. This is most obvious when Celery interrupts a query in
progress via a time limit handler. Django has marked this issue as
wontfix (https://code.djangoproject.com/ticket/30646). Since this is effectively an optimization for Celery that
can't be reliably used, Celery ought to close the connection after each task instead of trying to manage connections
in a way similar to how the Django application does.

* Ensure django fixup never calls close_if_unusable_or_obsolete

This API can fail to close unusable connections in certain scenarios,
namely database failovers and ungraceful terminations (e.g. signal
handler for time limit exceeded tasks). This makes
close_if_unusable_or_obsolete adequate for HTTP request lifecycle
management but inappropriate for use within celery workers.

See also:
https://code.djangoproject.com/ticket/30646
https://forum.djangoproject.com/t/close-if-unusable-or-obsolete-fails-to-close-unusable-connections/41900

* Add test for close_cache
* Add call to remove_pending_result, to counter add_pending_result in then.

* Add unittest for checking if remove_pending_result is called after a call to forget.

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* Disabled tests test_multiprocess_producer and test_multithread_producer

* Refactor integration tests CI

* Disable test_quorum_queue_qos_cluster_simulation.py

* Reduce integration tests timeout from 30m -> 20m and increase attempts from 2 -> 3 (fail/retry faster)

* Increase max attempts from 3 -> 5 with 1m break between each retry

* TMP Dont wait for unit tests

* Changed retry settings

* Revert "Add xfail test for RabbitMQ quorum queue global QoS race condition (celery#9770)"

This reverts commit 6d8bfd1.

* Remove test_quorum_queue_qos_cluster_simulation.py from CI

* Prevent the billiard QueueListener from deadlocking during worker shutdown

* Revert "TMP Dont wait for unit tests"

This reverts commit 3da612d.

* Run smoke if integration passed

* Changed retry settings

* Disable test_groupresult_serialization

* timeout 5, attempts 10, instead of 30m x 2 attempts

* Split integration test jobs to be test per module

* Disabled dep with unit tests (for faster testing)

* Run all integration jobs together

* Split smoke test jobs

* Simplifed python-package.yml

* Cleanup

* max-parallel: 4

* fixed smoked tests ci

* Removed Python 3.10-3.12 from the integration and smoke tests CI

* Integration & Smoke run only if unit tests pass

* Reduced more python versions for now (integration min/max, smoke-max)

* Revert "Prevent the billiard QueueListener from deadlocking during worker shutdown"

This reverts commit cebcb2b.

* Reapply "Add xfail test for RabbitMQ quorum queue global QoS race condition (celery#9770)"

This reverts commit b10a55c.

* Added back `test_quorum_queue_qos_cluster_simulation` to the integration tests

* max-parallel: 5

* Revert "Disable test_groupresult_serialization"

This reverts commit ade8cbd.
…ror: a bytes-like object is required, not 'str'` (celery#9865)

* fix: convert key to str in the couchdb backend delete() method

* Add tests for backend results

* Raise NotImplementedError instead of NotImplemented
…elery#9671) (celery#9815)

* Add two new settings that apply when Celery autogenerates a queue
(`task_create_missing_queues=True`):

*`task_create_missing_queue_type`

*`task_create_missing_queue_exchange_type`

Backwards compatibility: default behaviour (classic queue + direct
exchange) is unchanged.

Closes celery#9671

* Update celery/app/amqp.py

* feat: add configurable durable/exclusive options for control and event queues

- Added `event_queue_durable` and `event_queue_exclusive` settings.
- Added `control_exchange_durable` and `control_exchange_exclusive` settings.
- Updated `EventReceiver` and `Control` to support these options.
- Prevented invalid config: both options cannot be True at the same time.
- Added related tests and updated documentation accordingly.

This commit fix Issue (celery#9759) on the celery part

* fix(control): raise ImproperlyConfigured if both control_queue_durable and control_queue_exclusive are True

Prevent misconfiguration by raising ImproperlyConfigured in Control when both control_queue_durable and control_queue_exclusive options are enabled.

* Update docs/userguide/configuration.rst

* Update docs/userguide/configuration.rst

* Update celery/events/receiver.py

* Update celery/app/amqp.py

* Update celery/app/amqp.py

* Update receiver.py fixing cfg to self.app.conf

* Update docs/userguide/configuration.rst

* Update configuration.rst with version

* fix redundant routing_key call

* Fix breaking tests

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
…eenlet drainers (celery#9371)

* propagate event drainer errors to prevent infinite loop and require manual restart

Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>
Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>

* remove typing

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* add tests

* add tests and refactor implementation

Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>
Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>

* remove test code and add pydoc for clarity

Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>
Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>

* raise error in greenlet to ensure it exits, and add more test coverage

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* calls `teardown_thread` when using `schedule_thread` in tests

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* use wait() instead of while loop for clarity in teardown_thread for test_EventletDrainer

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* fix lint

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* Update celery/backends/asynchronous.py

* Update celery/backends/asynchronous.py

* Update celery/backends/asynchronous.py

* Update celery/backends/asynchronous.py

* Address race condition concern when setting and reading exception state

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* Revise docstring

* Fix bare except clause in test teardown_thread method

* Revert test change

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* Improve naming and docstring/comment clarity

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Linus Phan <13613724+linusphan@users.noreply.github.com>

* Update celery/backends/asynchronous.py

* Update celery/backends/asynchronous.py

* Update celery/backends/asynchronous.py

* Add logging import to asynchronous backend

---------

Co-authored-by: Jack <57678801+mothershipper@users.noreply.github.com>
Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
* Add option to disable prefetch

* Fix pre-commit hooks failing

* worker: disable-prefetch QoS guard uses autoscale max_concurrency or pool size; add CLI --disable-prefetch test; ensure consumer tests pass

* Fix test coverage for worker disable_prefetch handling

Add dedicated tests for disable_prefetch flag handling in worker.py to improve test coverage. This addresses the coverage issue identified by Codecov in PR celery#9863.

* Fix test coverage for worker disable_prefetch handling

Add comprehensive tests for the worker's disable_prefetch flag handling to improve test coverage. Refactored tests to be more concise, focused, and pass all lint checks. This addresses the coverage issue identified by Codecov in PR celery#9863.

* docs: add missing versionadded annotation for worker_disable_prefetch setting

* Update docs/userguide/configuration.rst

---------

Co-authored-by: rbehal <rahulbehal01@hotmail.com>
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Co-authored-by: dkhodos_sfemu <danny.khodos@ownbackup.com>
…ge (celery#9853)

* Add worker_eta_task_limit configuration to manage ETA task memory usage

- Introduced `worker_eta_task_limit` to limit the number of ETA/countdown tasks a worker can hold in memory, preventing memory exhaustion.
- Updated the task execution strategy to reject new ETA tasks when the limit is reached.
- Added documentation for the new configuration option.
- Implemented unit tests to validate the behavior of the ETA task limit.

* Update docs/userguide/configuration.rst

* Implement ETA task limit checks and callbacks in task execution strategy

* Add ETA task limit configuration and enforcement in worker strategy

- Introduced `worker_eta_task_limit` setting to limit the number of ETA tasks a worker can hold in memory.
- Implemented `ETATaskTracker` class to track and enforce the ETA task limit.
- Updated `default` strategy to reject new ETA tasks when the limit is reached.
- Added unit tests to verify the behavior of the ETA task limit and tracker.

* Fix retrieval of worker ETA task limit configuration to handle missing attribute gracefully

* Refactor ETA task limit handling in default strategy and update tests for QoS limits

* Remove ETA task limit handling from default strategy implementation

* Rename eta_task_limit to worker_eta_task_limit and update QoS handling in task consumer

* Rename worker_eta_task_limit to eta_task_limit for consistency in configuration

* fix: access worker_eta_task_limit as field

* docs: update ETA task limit description for clarity

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* Bump version: 5.5.3 → 5.6.0b1

* Immunity -> Recovery

* Added Changelog for v5.6.0b1
* GitHub Actions: Test on Python 3.14 release candidate 2

Python v3.14 -- October 7th
* https://www.python.org/download/pre-releases
* https://www.python.org/downloads/release/python-3140rc2

* Update default Python versions in integration tests
* fix: existing unit missing dependencies

* feat: add option for redis credential provider

* feat: add unit redis credential provider

* fix: code style

* feat: add docs

* chore: add more tests and fix docs

* doc: fix casing

* chore: improve test coverage

* fix: code style

* chore: improve test coverage

* fix: existing unit missing dependencies

* feat: add option for redis credential provider

* feat: add unit redis credential provider

* fix: code style

* feat: add docs

* chore: add more tests and fix docs

* doc: fix casing

* chore: improve test coverage

* fix: code style

* chore: improve test coverage

* Update docs/userguide/configuration.rst

* chore: add versionadd annotation to 5.6

* fix: suggestion from co-pilot reviews

* Update docs/userguide/configuration.rst

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 6.0.0 to 7.0.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ne (celery#9862)

* Celery.timezone: try tzlocal.get_localzone() before using LocalTimezone()

* app tests for local timezone

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* Run integration tests on Python 3.14

* Fix formatting of docstring in __init__.py

* Fix formatting of docstring in __init__.py
daniel7an and others added 26 commits March 26, 2026 12:50
The test_isa_mapping test checks that ConfigurationView is a subclass
of Mapping, but this is already implied by test_isa_mutable_mapping
which checks for MutableMapping (a subclass of Mapping). Since
ConfigurationView inherits from ChainMap which is a MutableMapping,
the Mapping check is always True and fully redundant.

Fixes celery#10077

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
celery#10162)

- Update pytest-celery version pin to >=1.3.0 (no upper bound)
  in requirements/test.txt and requirements/extras/pytest.txt
- Adopt PYTEST_CELERY_PKG build arg pattern in smoke test
  Dockerfiles (dev and pypi) for configurable install source
Updates the requirements on [elasticsearch](https://github.com/elastic/elasticsearch-py) to permit the latest version.
- [Release notes](https://github.com/elastic/elasticsearch-py/releases)
- [Commits](elastic/elasticsearch-py@0.4.1...v9.3.0)

---
updated-dependencies:
- dependency-name: elasticsearch
  dependency-version: 9.3.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
updates:
- [github.com/pycqa/isort: 8.0.0 → 8.0.1](PyCQA/isort@8.0.0...8.0.1)

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Bumps [isort](https://github.com/PyCQA/isort) from 6.1.0 to 7.0.0.
- [Release notes](https://github.com/PyCQA/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](PyCQA/isort@6.1.0...7.0.0)

---
updated-dependencies:
- dependency-name: isort
  dependency-version: 7.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Signed-off-by: JaeHyuck Sa <wogur981208@gmail.com>
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* feat: add handle connection errors retry function

* fix: wrap the drain event with handle connection errors

* fix: catch the oserror for retry the connection

* test: drain events connection and channel errors

* test: drainer without greenlet

* fix: sleep after catch the os error

* fix: move the importorskip to module-level calls

* Update celery/backends/rpc.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: start the comsumer with self._no_ack

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
celery#10165)

* Fix NameError with TYPE_CHECKING annotations on Python 3.14+ (PEP 649)

In Python 3.14, annotations are deferred by default (PEP 649). Two
sites in Celery eagerly triggered annotation evaluation, raising
NameError for types only imported under TYPE_CHECKING:

1. `fun.__annotations__` in `_task_from_fun` (celery/app/base.py):
   Use `inspect.get_annotations(fun, format=Format.STRING)` on 3.14+
   to return annotations as strings without evaluation.

2. `inspect.getfullargspec(fun)` in `head_from_fun` (utils/functional.py):
   On 3.14+, getfullargspec internally evaluates annotations and raises
   TypeError for unresolvable names. Fall back to reading the function's
   __code__ object directly (which is annotation-free) when that happens.

Fixes celery#10099

Assisted by AI

* Remove unused annotationlib import in functional.py


* Simplify _getfullargspec: use inspect.signature with Format.STRING

Replace the __code__ introspection fallback with a cleaner approach:
use inspect.signature(target, annotation_format=Format.STRING) which
avoids annotation evaluation and handles all argument kinds directly.
For bound methods, pass __func__ so that 'self' is included in args,
preserving the behaviour of getfullargspec on older Python versions.

* Skip PEP 649 regression tests on Python < 3.14

These tests exercise deferred annotation evaluation introduced by PEP 649,
which is only the default on Python 3.14+. Skipping on earlier versions
avoids NameError at exec time when annotations are evaluated eagerly.

Assisted by AI

* Update celery/app/base.py

---------
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
…h_multiplier) and worker_eta_task_limit (celery#10181)

* docs: add description for prefetch multiplier related to worker_eta_task_limit

* docs: add description for prefetch multiplier related to worker_eta_task_limit

* Update docs/userguide/configuration.rst

* Update docs/glossary.rst

* Update docs/userguide/configuration.rst

* Update docs/glossary.rst

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* fix multiple chord chaining

* Apply suggestions from code review

* fix test name

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
…elery#10178)

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
…ed tasks (celery#10159)

* fix(trace): dispatch chain/callbacks on dedup fast-path for redelivered tasks (celery#9835)

When a redelivered task is deduplicated via backend state check, the
dedup fast-path returned immediately without dispatching the chain or
callbacks from the message. This caused chains to be permanently lost
when a worker crashed after mark_as_done but before the broker ack.

Also replace chain.pop() with non-mutating chain[-1] + chain[:-1] to
prevent in-place corruption of task_request.chain on retry/redelivery.

Closes celery#9835

* fix(trace): harden dedup dispatch and add successful_requests guard (celery#9835)

- Move successful_requests.add() inside try block so failed dispatches
  allow retry on next redelivery
- Handle group callbacks in dedup path matching normal success path
  (Issue celery#1936)
- Pass priority to callback dispatch in dedup path
- Re-raise MemoryError from dedup dispatch exception handler
- Escalate dispatch failure log from warning to error
- Remove leftover fault injection debug code from chain dispatch
- Add tests for multi-element chain, successful_requests guard,
  combined chain+callbacks, and dispatch failure logging

* fix(test): clean up successful_requests and align task_id in dedup tests

- Add successful_requests.discard(task_id) to tests that trigger the
  backend-dedup path to avoid leaking global state
- Pass task_id to trace() in test_chain_dispatch_does_not_mutate to
  match request['id']

* fix(trace): guard dedup dispatch with stored children to avoid duplicates

Skip chain/callback dispatch when the stored result meta already
contains children, indicating the previous worker successfully
dispatched them before storing the result.

* fix(test): patch maybe_signature in chain mutation test to avoid side effects

* fix(trace): match normal path dispatch order in dedup branch (callbacks before chain)

* fix(test): add test for children guard skipping dedup dispatch

* Update celery/app/trace.py

* fix(trace): raise Reject(requeue=True) on dedup dispatch failure instead of acking

* fix(trace): track push_task/push_request separately to unwind partial pushes

* refactor(trace): extract shared dispatch helper, remove dead children persistence

Extract callback/chain dispatch logic into _dispatch_callbacks_and_chain()
helper inside build_tracer, called from both the normal success path and
the dedup fast-path. This eliminates duplicated dispatch code that could
drift between the two paths.

Remove the push_task/push_request context wrapper and children persistence
block from the dedup path — store_result is silently blocked by the
KV-backend SUCCESS guard so children never persist, and the _meta dict
mutation was a local no-op.

* test(trace): cover MemoryError propagation and Reject passthrough in dedup path

Add tests for two uncovered lines flagged by Codecov:
- MemoryError during dedup dispatch propagates directly (not wrapped in Reject)
- Reject from dedup dispatch propagates through the module-level trace_task wrapper

* test(integration): add integration tests for dedup chain/callback dispatch

Add 4 integration tests exercising the full worker pipeline with Redis
broker/backend to verify chain and callback dispatch on the dedup
fast-path (issue celery#9835).

New integration tasks: store_success_then_reject (simulates redelivery
by storing SUCCESS then raising Reject) and reject_then_succeed (tests
normal reject passthrough).

Also address review findings: consolidate redundant _get_task_meta()
calls, document the _children guard and partial-dispatch limitations,
strengthen root_id assertion, and add unit tests for root_id fallback
and empty-chain edge case.

* refactor(test): move dedup integration tests to standalone file, fix CI

- Move test_dedup_chain_dispatch to its own file following
  test_prefork_shutdown.py pattern (celery_session_app + start_worker)
- Add test_dedup_chain_dispatch.py to CI integration test matrix
- Extract flaky/timeout boilerplate from test_canvas.py to conftest.py
- Fix skip condition to use backend.persistent instead of startswith('redis')
- Wrap dedup_worker fixture teardown in try/finally
- Fix callback test to assert actual callback result via AsyncResult
- Move inline Reject import to module level in tasks.py
- Add unit test for backend-read failure during dedup check

* style: remove trailing blank line in test_canvas.py

* Update t/integration/test_dedup_chain_dispatch.py

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* refactor: extract the share reconnect function

* test: reconnect on error in asynchronous

* fix: reset the connection error and add unittest

* fix: lint

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
updates:
- [github.com/codespell-project/codespell: v2.4.1 → v2.4.2](codespell-project/codespell@v2.4.1...v2.4.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix: show user-friendly broker errors for remote CLI commands

Convert broker connection failures in `status` into concise actionable CLI errors instead of tracebacks, and apply the same error handling path to related remote CLI flows.
Add regression coverage for broker-unreachable and unexpected-error handling in status/graph/events command paths.

* test: handle remote command error

* chore: use cli_runner in click package

---------

Co-authored-by: Harshang Akabari <a.harshang@gmail.com>
* docs: clarify after_return behavior for retried tasks

* Update docs/userguide/tasks.rst

* docs: clarify after_return ordering for terminal states

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* Add compression header to message protocol docs

Document the optional 'compression' header field in the version 2
message protocol definition.

* docs: clarify compression header is optional with examples

Add inline comment noting the compression header is omitted when
no compression is used, with example compressor names.

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
…n Santhosh <rohan@example.com> (celery#10153)

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
The autoreloader component (celery.worker.autoreloader) was removed
from the codebase, but the documentation section still referenced it.
This removes the misleading autoreloader attribute section from the
worker extensions guide.

Fixes celery#7320

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
)

* fix: prioritize request ignore_result over task definition

* fix: add comment to explain logic of get_actual_ignore_result

* test: add missing tests for Request.ignore_result fallback

This commit adds the missing unit tests to verify the priority logic
for 'ignore_result' within the Request class, ensuring it correctly
falls back to the task property when not specified in the message.

* fix: pre-commit error

* fix: add missing tests for handle_error_state while req is none

* fix(worker): add test to ensure request.store_errors respects task.ignore_result

* fix(docs): clarify fallback behavior for ignore_result and store_errors

* fix(worker): handle ignore_result=None in request headers

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 3 to 4.
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Commits](nick-fields/retry@v3...v4)

---
updated-dependencies:
- dependency-name: nick-fields/retry
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* fix: clear the timer while catch the exception

* fix: move the timer clear to another try catch block

* Update t/unit/worker/test_loops.py

---------

Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* Bump version: 5.6.2 → 5.6.3

* ci: enable CI on v5.6.x branch

* Added Changelog for v5.6.3
Fresh branch from v5.6.3 (kombu>=5.6.0 -> unlocks redis 5.3.1, redis-py#3557).
Re-applies the gumloop delta: spawn pool + alias, GMLP-9012 ready_worker_limit
recycling gate, and packaging identity. disable-prefetch (old PR #1) is dropped
because celery upstreamed it in 5.6.x (celery#9863/celery#9919).
Rebuilds gumloop-celery on upstream celery v5.6.3 (5.6.3+gumloop_0.2.0),
carrying the spawn pool + GMLP-9012 (ready_worker_limit); drops the old
hand-rolled disable-prefetch (upstreamed as a superset in celery 5.6).

Resolves all conflicts in favor of the rebuild (take-ours): the merged
tree is byte-identical to rebuild-on-5.6.3. Beyond the disable-prefetch
overlap, this also restores upstream files the old fork had stripped
(.github/ workflows, .pre-commit-config.yaml, .bumpversion.cfg), which
is the intended clean-v5.6.3 state.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@kdassharma
kdassharma merged commit 3e1bcb6 into main Jul 14, 2026
2 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.