Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 2, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
celery (source, changelog) ==5.5.3==5.6.1 age adoption passing confidence

Release Notes

celery/celery (celery)

v5.6.1

Compare Source

=====

:release-date: 2025-12-29
:release-by: Tomer Nosrati

What's Changed


- Fix Redis Sentinel ACL authentication support (#​10013)
- Fix: Broker heartbeats not sent during graceful shutdown (#​9986)
- docs #​5410 -- Document confirm_publish broker transport option (#​10016)
- close DB pools only in prefork mode (#​10020)
- Fix: Avoid unnecessary Django database connection creation during cleanup (#​10015)
- reliable prefork detection (#​10023)
- better coverage (#​10029)
- Docs: clarify `result_extended` vs periodic task metadata and show `headers["periodic_task_name"]` example (#​10030)
- Stop importing pytest_subtests (#​10032)
- Only use exceptiongroup backport for Python < 3.11 (#&#8203;10033)
- Prepare for release: v5.6.1 (#&#8203;10037)

.. _version-5.6.0:

5.6.0
=====

:release-date: 2025-11-30
:release-by: Tomer Nosrati

Celery v5.6.0 is now available.

Key Highlights

See :ref:whatsnew-5.6 for a complete overview or read the main highlights below.

Python 3.9 Minimum Version

Celery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python
version is now 3.9. Users still on Python 3.8 must upgrade their Python version
before upgrading to Celery 5.6.0.

Additionally, this release includes initial support for Python 3.14.

SQS: Reverted to pycurl from urllib3

The switch from pycurl to urllib3 for the SQS transport (introduced in
Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS
users:

  • Processing throughput dropped from ~100 tasks/sec to ~3/sec in some environments
  • UnknownOperationException errors causing container crash loops
  • Silent message processing failures with no error logs

Users of the SQS transport must ensure pycurl is installed. If you removed
pycurl after upgrading to Celery 5.5.0, you will need to reinstall it.

Contributed by @auvipy <https://github.com/auvipy>_ in
#&#8203;9620 <https://github.com/celery/celery/pull/9620>_.

Security Fix: Broker Credential Leak Prevention

Fixed a security issue where broker URLs containing passwords were being logged
in plaintext by the delayed delivery mechanism. Broker credentials are now
properly sanitized in all log output.

Contributed by @giancarloromeo <https://github.com/giancarloromeo>_ in
#&#8203;9997 <https://github.com/celery/celery/pull/9997>_.

Memory Leak Fixes

Two significant memory leaks have been fixed in this release:

Exception Handling Memory Leak: Fixed a critical memory leak in task exception
handling that was particularly severe on Python 3.11+ due to enhanced traceback
data. The fix properly breaks reference cycles in tracebacks to allow garbage
collection.

Contributed by @jaiganeshs21 <https://github.com/jaiganeshs21>_ in
#&#8203;9799 <https://github.com/celery/celery/pull/9799>_.

Pending Result Memory Leak: Fixed a memory leak where AsyncResult
subscriptions were not being cleaned up when results were forgotten.

Contributed by @tsoos99dev <https://github.com/tsoos99dev>_ in
#&#8203;9806 <https://github.com/celery/celery/pull/9806>_.

ETA Task Memory Limit

New configuration option :setting:worker_eta_task_limit to prevent out-of-memory
crashes when workers fetch large numbers of ETA or countdown tasks. Previously,
workers could exhaust available memory when the broker contained many scheduled tasks.

Example usage:

.. code-block:: python

app.conf.worker_eta_task_limit = 1000

Contributed by @sashu2310 <https://github.com/sashu2310>_ in
#&#8203;9853 <https://github.com/celery/celery/pull/9853>_.

Queue Type Selection for Auto-created Queues

New configuration options allow specifying the queue type and exchange type when
Celery auto-creates missing queues. This is particularly useful for RabbitMQ users
who want to use quorum queues with auto-created queues.

Configuration options:

  • :setting:task_create_missing_queue_type: Sets the queue type for auto-created
    queues (e.g., quorum, classic)
  • :setting:task_create_missing_queue_exchange_type: Sets the exchange type for
    auto-created queues

Example usage:

.. code-block:: python

app.conf.task_create_missing_queue_type = 'quorum'

Contributed by @ghirailghiro <https://github.com/ghirailghiro>_ in
#&#8203;9815 <https://github.com/celery/celery/pull/9815>_.

What's Changed


- Prepare for release: v5.6.0 (#&#8203;10010)

.. _version-5.6.0rc2:

5.6.0rc2
========

:release-date: 2025-11-22
:release-by: Tomer Nosrati

Celery v5.6.0 Release Candidate 2 is now available for testing.
Please help us test this version and report any issues.

What's Changed
  • Remove Python 4.0 version condition for pytest dependencies (#​9993)
  • Sanitize broker URL in delayed delivery logs (avoid leaking credentials) (#​9997)
  • Don't fail task on timeout during cold shutdown (#​9678)
  • Add Py39-314t to CI (#​9999)
  • asynpool: Don't return from inside a finally block (#​10000)
  • Prepare for (pre) release: v5.6.0rc2 (#​10005)

.. _version-5.6.0rc1:

v5.6.0

Compare Source

=====

:release-date: 2025-11-30
:release-by: Tomer Nosrati

Celery v5.6.0 is now available.

Key Highlights


See :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.

Python 3.9 Minimum Version
--------------------------

Celery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python
version is now 3.9. Users still on Python 3.8 must upgrade their Python version
before upgrading to Celery 5.6.0.

Additionally, this release includes initial support for Python 3.14.

SQS: Reverted to ``pycurl`` from ``urllib3``
--------------------------------------------

The switch from ``pycurl`` to ``urllib3`` for the SQS transport (introduced in
Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS
users:

- Processing throughput dropped from ~100 tasks/sec to ~3/sec in some environments
- ``UnknownOperationException`` errors causing container crash loops
- Silent message processing failures with no error logs

Users of the SQS transport must ensure ``pycurl`` is installed. If you removed
``pycurl`` after upgrading to Celery 5.5.0, you will need to reinstall it.

Contributed by `@auvipy <https://github.com/auvipy>`_ in
`#&#8203;9620 <https://github.com/celery/celery/pull/9620>`_.

Security Fix: Broker Credential Leak Prevention
------------------------------------------------

Fixed a security issue where broker URLs containing passwords were being logged
in plaintext by the delayed delivery mechanism. Broker credentials are now
properly sanitized in all log output.

Contributed by `@giancarloromeo <https://github.com/giancarloromeo>`_ in
`#&#8203;9997 <https://github.com/celery/celery/pull/9997>`_.

Memory Leak Fixes
-----------------

Two significant memory leaks have been fixed in this release:

**Exception Handling Memory Leak**: Fixed a critical memory leak in task exception
handling that was particularly severe on Python 3.11+ due to enhanced traceback
data. The fix properly breaks reference cycles in tracebacks to allow garbage
collection.

Contributed by `@jaiganeshs21 <https://github.com/jaiganeshs21>`_ in
`#&#8203;9799 <https://github.com/celery/celery/pull/9799>`_.

**Pending Result Memory Leak**: Fixed a memory leak where ``AsyncResult``
subscriptions were not being cleaned up when results were forgotten.

Contributed by `@tsoos99dev <https://github.com/tsoos99dev>`_ in
`#&#8203;9806 <https://github.com/celery/celery/pull/9806>`_.

ETA Task Memory Limit
---------------------

New configuration option :setting:`worker_eta_task_limit` to prevent out-of-memory
crashes when workers fetch large numbers of ETA or countdown tasks. Previously,
workers could exhaust available memory when the broker contained many scheduled tasks.

Example usage:

.. code-block:: python

    app.conf.worker_eta_task_limit = 1000

Contributed by `@sashu2310 <https://github.com/sashu2310>`_ in
`#&#8203;9853 <https://github.com/celery/celery/pull/9853>`_.

Queue Type Selection for Auto-created Queues
--------------------------------------------

New configuration options allow specifying the queue type and exchange type when
Celery auto-creates missing queues. This is particularly useful for RabbitMQ users
who want to use quorum queues with auto-created queues.

Configuration options:

- :setting:`task_create_missing_queue_type`: Sets the queue type for auto-created
  queues (e.g., ``quorum``, ``classic``)
- :setting:`task_create_missing_queue_exchange_type`: Sets the exchange type for
  auto-created queues

Example usage:

.. code-block:: python

    app.conf.task_create_missing_queue_type = 'quorum'

Contributed by `@ghirailghiro <https://github.com/ghirailghiro>`_ in
`#&#8203;9815 <https://github.com/celery/celery/pull/9815>`_.

What's Changed

.. _version-5.6.0rc2:


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from a team December 2, 2025 21:56
@renovate renovate bot changed the title chore(deps): update dependency celery to v5.6.0 chore(deps): update dependency celery to v5.6.1 Dec 30, 2025
@renovate renovate bot force-pushed the renovate/celery-5.x branch from 5387e87 to 37eeb34 Compare December 30, 2025 02:03
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.

0 participants