=====
swift
=====

.. _swift_2.21.0:

2.21.0
======

.. _swift_2.21.0_New Features:

New Features
------------

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Change the behavior of the EC reconstructor to perform a
  fragment rebuild to a handoff node when a primary peer responds
  with 507 to the REPLICATE request. This changes EC to match the
  existing behavior of replication when drives fail. After a
  rebalance of EC rings (potentially removing unmounted/failed
  devices), it's most IO efficient to run in handoffs_only mode to
  avoid unnecessary rebuilds.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- O_TMPFILE support is now detected by attempting to use it
  instead of looking at the kernel version. This allows older
  kernels with backported patches to take advantage of the
  O_TMPFILE functionality.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Add slo_manifest_hook callback to allow other middlewares to
  impose additional constraints on or make edits to SLO manifests
  before being written. For example, a middleware could enforce
  minimum segment size or insert data segments.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Fixed an issue with multi-region EC policies that caused the EC
  reconstructor to constantly attempt cross-region rebuild
  traffic.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Fixed an issue where S3 API v4 signatures would not be validated
  against the body of the request, allowing a replay attack if
  request headers were captured by a malicious third party.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Display crypto data/metadata details in swift-object-info.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- formpost can now accept a content-encoding parameter.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Fixed an issue where multipart uploads with the S3 API would
  sometimes report an error despite all segments being upload
  successfully.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Multipart object segments are now actually deleted when the
  multipart object is deleted via the S3 API.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Swift now returns a 503 (instead of a 500) when an account
  auto-create fails.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Fixed a bug where encryption would store the incorrect key
  metadata if the object name starts with a slash.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Fixed an issue where an object server failure during a client
  download could leave an open socket between the proxy and
  client.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Fixed an issue where deleted EC objects didn't have their
  on-disk directories cleaned up. This would cause extra resource
  usage on the object servers.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Fixed issue where bulk requests using xml and expect
  100-continue would return a malformed HTTP response.

.. releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml @ b'179fa7ccd4d6faeacc989715887b69f9422a17b2'

- Various other minor bug fixes and improvements.

