Skip to content

Latest commit

 

History

History
452 lines (251 loc) · 13.3 KB

changelog-4.2.rst

File metadata and controls

452 lines (251 loc) · 13.3 KB

Change history

This document contains change notes for bugfix releases in the 4.2.x series, please see :ref:`whatsnew-4.2` for an overview of what's new in Celery 4.2.

4.2.1

release-date:2018-07-18 11:00 AM IST
release-by:Omer Katz
  • Result Backend: Fix deserialization of exceptions that are present in the producer codebase but not in the consumer codebase.

    Contributed by John Arnold

  • Message Protocol Compatibility: Fix error caused by an invalid (None) timelimit value in the message headers when migrating messages from 3.x to 4.x.

    Contributed by Robert Kopaczewski

  • Result Backend: Fix serialization of exception arguments when exception arguments are not JSON serializable by default.

    Contributed by Tom Booth

  • Worker: Fixed multiple issues with rate limited tasks

    Maintain scheduling order. Fix possible scheduling of a :class:`celery.worker.request.Request` with the wrong :class:`kombu.utils.limits.TokenBucket` which could cause tasks' rate limit to behave incorrectly. Fix possible duplicated execution of tasks that were rate limited or if ETA/Countdown was provided for them.

    Contributed by :github_user:`ideascf`

  • Worker: Defensively handle invalid timelimit header values in requests.

    Contributed by Omer Katz

Documentation fixes:

  • Matt Wiens
  • Seunghun Lee
  • Lewis M. Kabui
  • Prathamesh Salunkhe

4.2.0

release-date:2018-06-10 21:30 PM IST
release-by:Omer Katz
  • Task: Add ignore_result as task execution option (#4709, #3834)

    Contributed by Andrii Kostenko and George Psarakis.

  • Redis Result Backend: Do not create PubSub subscriptions when results are ignored (#4709, #3834)

    Contributed by Andrii Kostenko and George Psarakis.

  • Redis Result Backend: Result consumer always unsubscribes when task state is ready (#4666)

    Contributed by George Psarakis.

  • Development/Testing: Add docker-compose and base Dockerfile for development (#4482)

    Contributed by Chris Mitchell.

  • Documentation/Sphinx: Teach autodoc to document tasks if undoc-members is not set (#4588)

    Contributed by Leo Singer.

  • Documentation/Sphinx: Put back undoc-members option in sphinx test (#4586)

    Contributed by Leo Singer.

  • Documentation/Sphinx: Sphinx autodoc picks up tasks automatically only if undoc-members is set (#4584)

    Contributed by Leo Singer.

  • Task: Fix shadow_name issue when using previous version Task class (#4572)

    Contributed by :github_user:`pachewise`.

  • Task: Add support for bound tasks as link_error parameter (Fixes #3723) (#4545)

    Contributed by :github_user:`brabiega`.

  • Deployment: Add a command line option for setting the Result Backend URL (#4549)

    Contributed by :github_user:`y0ngdi`.

  • CI: Enable pip cache in appveyor build (#4546)

    Contributed by Thijs Triemstra.

  • Concurrency/Asynpool: Fix errno property name shadowing.

    Contributed by Omer Katz.

  • DynamoDB Backend: Configurable endpoint URL (#4532)

    Contributed by Bohdan Rybak.

  • Timezones: Correctly detect UTC timezone and timezone from settings (Fixes #4517) (#4519)

    Contributed by :github_user:`last-partizan`.

  • Control: Cleanup the mailbox's producer pool after forking (#4472)

    Contributed by Nick Eaket.

  • Documentation: Start Celery and Celery Beat on Azure WebJob (#4484)

    Contributed by PauloPeres.

  • Celery Beat: Schedule due tasks on startup, after Beat restart has occurred (#4493)

    Contributed by Igor Kasianov.

  • Worker: Use absolute time when task is accepted by worker pool (#3684)

    Contributed by Régis Behmo.

  • Canvas: Propagate arguments to chains inside groups (#4481)

    Contributed by Chris Mitchell.

  • Canvas: Fix Task.replace behavior in nested chords (fixes #4368) (#4369)

    Contributed by Denis Shirokov & Alex Hill.

  • Installation: Pass python_requires argument to setuptools (#4479)

    Contributed by Jon Dufresne.

  • Message Protocol Compatibility: Handle "hybrid" messages that have moved between Celery versions (#4358) (Issue #4356)

    Contributed by Russell Keith-Magee.

  • Canvas: request on_timeout now ignores soft time limit exception (fixes #4412) (#4473)

    Contributed by Alex Garel.

  • Redis Result Backend: Integration test to verify PubSub unsubscriptions (#4468)

    Contributed by George Psarakis.

  • Message Protocol Properties: Allow the shadow keyword argument and the shadow_name method to set shadow properly (#4381)

    Contributed by :github_user:`hclihn`.

  • Canvas: Run chord_unlock on same queue as chord body (#4448) (Issue #4337)

    Contributed by Alex Hill.

  • Canvas: Support chords with empty header group (#4443)

    Contributed by Alex Hill.

  • Timezones: make astimezone call in localize more safe (#4324)

    Contributed by Matt Davis.

  • Canvas: Fix length-1 and nested chords (#4437) (Issues #4393, #4055, #3885, #3597, #3574, #3323, #4301)

    Contributed by Alex Hill.

  • CI: Run Openstack Bandit in Travis CI in order to detect security issues.

    Contributed by Omer Katz.

  • CI: Run isort in Travis CI in order to lint Python import statements.

    Contributed by Omer Katz.

  • Canvas: Resolve TypeError on .get from nested groups (#4432) (Issue #4274)

    Contributed by Misha Wolfson.

  • CouchDB Backend: Correct CouchDB key string type for Python 2/3 compatibility (#4166)

    Contributed by :github_user:`fmind` && Omer Katz.

  • Group Result: Fix current_app fallback in GroupResult.restore() (#4431)

    Contributed by Alex Hill.

  • Consul Backend: Correct key string type for Python 2/3 compatibility (#4416)

    Contributed by Wido den Hollander.

  • Group Result: Correctly restore an empty GroupResult (#2202) (#4427)

    Contributed by Alex Hill & Omer Katz.

  • Result: Disable synchronous waiting for sub-tasks on eager mode(#4322)

    Contributed by Denis Podlesniy.

  • Celery Beat: Detect timezone or Daylight Saving Time changes (#1604) (#4403)

    Contributed by Vincent Barbaresi.

  • Canvas: Fix append to an empty chain. Fixes #4047. (#4402)

    Contributed by Omer Katz.

  • Task: Allow shadow to override task name in trace and logging messages. (#4379)

    Contributed by :github_user:`hclihn`.

  • Documentation/Sphinx: Fix getfullargspec Python 2.x compatibility in contrib/sphinx.py (#4399)

    Contributed by Javier Martin Montull.

  • Documentation: Updated installation instructions for SQS broker (#4382)

    Contributed by Sergio Fernandez.

  • Celery Beat: Better equality comparison for ScheduleEntry instances (#4312)

    Contributed by :github_user:`mariia-zelenova`.

  • Task: Adding 'shadow' property to as_task_v2 (#4350)

    Contributed by Marcelo Da Cruz Pinto.

  • Try to import directly, do not use deprecated imp method (#4216)

    Contributed by Tobias Kunze.

  • Task: Enable kwargsrepr and argsrepr override for modifying task argument representation (#4260)

    Contributed by James M. Allen.

  • Result Backend: Add Redis Sentinel backend (#4144)

    Contributed by Geoffrey Bauduin.

  • Use unique time values for Collections/LimitedSet (#3879 and #3891) (#3892)

    Contributed by :github_user:`lead2gold`.

  • CI: Report coverage for all result backends.

    Contributed by Omer Katz.

  • Django: Use Django DB max age connection setting (fixes #4116) (#4292)

    Contributed by Marco Schweighauser.

  • Canvas: Properly take into account chain tasks link_error (#4240)

    Contributed by :github_user:`agladkov`.

  • Canvas: Allow to create group with single task (fixes issue #4255) (#4280)

    Contributed by :github_user:`agladkov`.

  • Canvas: Copy dictionary parameter in chord.from_dict before modifying (fixes issue #4223) (#4278)

    Contributed by :github_user:`agladkov`.

  • Results Backend: Add Cassandra options (#4224)

    Contributed by Scott Cooper.

  • Worker: Apply rate limiting for tasks with ETA (#4251)

    Contributed by :github_user:`arpanshah29`.

  • Celery Beat: support scheduler entries without a schedule (#4235)

    Contributed by Markus Kaiserswerth.

  • SQS Broker: Updated SQS requirements file with correct boto3 version (#4231)

    Contributed by Alejandro Varas.

  • Remove unused code from _create_app contextmanager (#4204)

    Contributed by Ryan P Kilby.

  • Group Result: Modify GroupResult.as_tuple() to include parent (fixes #4106) (#4205)

    Contributed by :github_user:`pachewise`.

  • Beat: Set default scheduler class in beat command. (#4189)

    Contributed by :github_user:`Kxrr`.

  • Worker: Retry signal receiver after raised exception (#4192)

    Contributed by David Davis.

  • Task: Allow custom Request class for tasks (#3977)

    Contributed by Manuel Vázquez Acosta.

  • Django: Django fixup should close all cache backends (#4187)

    Contributed by Raphaël Riel.

  • Deployment: Adds stopasgroup to the supervisor scripts (#4200)

    Contributed by :github_user:`martialp`.

  • Using Exception.args to serialize/deserialize exceptions (#4085)

    Contributed by Alexander Ovechkin.

  • Timezones: Correct calculation of application current time with timezone (#4173)

    Contributed by George Psarakis.

  • Remote Debugger: Set the SO_REUSEADDR option on the socket (#3969)

    Contributed by Theodore Dubois.

  • Django: Celery ignores exceptions raised during django.setup() (#4146)

    Contributed by Kevin Gu.

  • Use heartbeat setting from application configuration for Broker connection (#4148)

    Contributed by :github_user:`mperice`.

  • Celery Beat: Fixed exception caused by next_transit receiving an unexpected argument. (#4103)

    Contributed by DDevine.

  • Task Introduce exponential backoff with Task auto-retry (#4101)

    Contributed by David Baumgold.

  • AsyncResult: Remove weak-references to bound methods in AsyncResult promises. (#4131)

    Contributed by Vinod Chandru.

  • Development/Testing: Allow eager application of canvas structures (#4576)

    Contributed by Nicholas Pilon.

  • Command Line: Flush stderr before exiting with error code 1.

    Contributed by Antonin Delpeuch.

  • Task: Escapes single quotes in kwargsrepr strings.

    Contributed by Kareem Zidane

  • AsyncResult: Restore ability to join over ResultSet after fixing celery/#3818.

    Contributed by Derek Harland

  • Redis Results Backend: Unsubscribe on message success.

    Previously Celery would leak channels, filling the memory of the Redis instance.

    Contributed by George Psarakis

  • Task: Only convert eta to isoformat when it is not already a string.

    Contributed by Omer Katz

  • Redis Results Backend: The result_backend setting now supports rediss:// URIs

    Contributed by James Remeika

  • Canvas Keyword arguments are passed to tasks in chain as expected.

    Contributed by :github_user:`tothegump`

  • Django Fix a regression causing Celery to crash when using Django.

    Contributed by Jonas Haag

  • Canvas Chain with one task now runs as expected.

    Contributed by :github_user:`tothegump`

  • Kombu Celery 4.2 now requires Kombu 4.2 or better.

    Contributed by Omer Katz & Asif Saifuddin Auvi

  • GreenletExit is not in __all__ in greenlet.py which can not be imported by Python 3.6.

    The import was adjusted to work on Python 3.6 as well.

    Contributed by Hsiaoming Yang

  • Fixed a regression that occurred during the development of Celery 4.2 which caused celery report to crash when Django is installed.

    Contributed by Josue Balandrano Coronel

  • Matched the behavior of GroupResult.as_tuple() to that of AsyncResult.as_tuple().

    The group's parent is now serialized correctly.

    Contributed by Josue Balandrano Coronel

  • Use Redis coercion mechanism for converting URI query parameters.

    Contributed by Justin Patrin

  • Fixed the representation of GroupResult.

    The dependency graph is now presented correctly.

    Contributed by Josue Balandrano Coronel

Documentation, CI, Installation and Tests fixes: