Release 2.2.1 Available

Release Notes
Apache Ozone 2.2.1 is a maintenance release on top of Ozone 2.2.0 with bug fixes, performance improvements, and dependency updates.
Notable Fixes
HDDS-15783 — SCM fails to deserialize empty lists from Ratis log
Fixed deserialization failure when SCM Ratis log entries contained empty lists, which could block SCM startup or state replay.
HDDS-15578 — InvalidStateTransitionException can crash SCM
SCM no longer crashes from uncaught InvalidStateTransitionException during container state updates.
HDDS-15791 — EC RECOVERING container data loss after idle scrub
Fixed EC offline reconstruction data loss when idle RECOVERING containers were scrubbed and auto-recreated as partial CLOSED replicas.
HDDS-15849 — gRPC client shutdown slows parallel reads
Fixed a performance regression where gRPC client shutdown blocked the Datanode client cache lock for 100 ms or more per close, causing severe slowdown in parallel read workloads such as EC reconstruction.
HDDS-15665 — Datanode transaction iterator race condition
Fixed a race condition in the Datanode transaction iterator that could cause already-deleted transactions to be loaded and reprocessed after a flush.
HDDS-12669 — ContainerSet recoveringContainerMap race condition
Fixed a race condition in ContainerSet#recoveringContainerMap that could cause incorrect container recovery state during Datanode restarts.
HDDS-15552 — Prometheus scraping fails on Ozone metrics
Fixed Prometheus metrics endpoints failing to scrape Ozone services because Ratis event strings were published as metric names containing invalid characters.
HDDS-11772 — Recon reports incorrect Ozone used capacity
Fixed incorrect Ozone used capacity reporting in Recon that could show vastly inflated values compared to the actual data written.
Changelog
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Fixed
- Fixed SCM deserialization failure for empty lists in Ratis log entries. (HDDS-15783)
- Fixed SCM crashes from uncaught InvalidStateTransitionException during container state updates. (HDDS-15578)
- Fixed EC offline reconstruction data loss for idle RECOVERING containers. (HDDS-15791)
- Fixed gRPC client shutdown performance regression under parallel read workloads. (HDDS-15849)
- Fixed Datanode transaction iterator race condition after flush. (HDDS-15665)
- Fixed ContainerSet#recoveringContainerMap race condition during Datanode restarts. (HDDS-12669)
- Fixed Prometheus metrics scraping failures caused by invalid Ratis event metric names. (HDDS-15552)
- Fixed incorrect Ozone used capacity reporting in Recon. (HDDS-11772)
Changed
- Upgraded Netty to 4.1.135. (HDDS-15722)
- Upgraded Netty to 4.1.136. (HDDS-15900)
- Upgraded BouncyCastle to 1.85. (HDDS-15974)
- Upgraded Protobuf to 3.25.9. (HDDS-15674)
- Upgraded Ratis thirdparty to 1.0.11. (HDDS-15727)
Downloads
Documentation
Release Date: 2026 Aug 27