Skip to content

v1.11.0

Choose a tag to compare

@andystaples andystaples released this 29 Sep 21:53
ec9af14

What's Changed

  • Keep asynchronous Azure Blob payload uploads and downloads responsive by moving gzip compression and decompression off the calling event loop, by andystaples in #270
  • Fix nested when_all and when_any tasks leaving their enclosing composite waiting, including when_any([cancel, when_all(tasks)]), by Tsuyoshi Ushio (@TsuyoshiUshio) in #267

Warning

Replay-breaking bug fix: The nested-composite correction can change the winner of a nested race when replaying an existing orchestration. An inner when_all could previously finish without completing its enclosing when_any, allowing a later cancellation to win. If downstream actions for that cancellation branch were already recorded, replay can now take a different branch and fail with NonDeterminismError. Ordinary, non-nested when_all and when_any usage is unchanged; not every nested-composite history is affected.

Before upgrading, allow affected instances to finish on the previous SDK, or keep their task hub on the previous SDK and use a separate task hub for new instances. Instances already stuck because of this bug may need deliberate recovery rather than waiting to drain. Pin or lock durabletask while planning the transition, including when using it through a provider.

External Links

Full Changelog: v1.10.1...v1.11.0

Contributors

andystaples Tsuyoshi Ushio (@TsuyoshiUshio)