[release-announce] swift 2.23.2 (train)

no-reply at openstack.org no-reply at openstack.org
Fri Oct 9 19:02:40 UTC 2020


We are amped to announce the release of:

swift 2.23.2: OpenStack Object Storage

This release is part of the train stable release series.

The source is available from:

    https://opendev.org/openstack/swift

Download the package from:

    https://tarballs.openstack.org/swift/

Please report issues through:

    https://bugs.launchpad.net/swift/+bugs

For more details, please see below.

2.23.2
^^^^^^


Upgrade Notes
*************

* **If your cluster has encryption enabled and is still running
  Swift under Python 2**, we recommend upgrading Swift *before*
  transitioning to Python 3. Otherwise, new writes to objects with
  non-ASCII characters in their paths may result in corrupted
  downloads when read from a proxy-server still running old swift on
  Python 2. See bug 1888037 for more information.

* The above bug was caused by a difference in string types that
  resulted in ambiguity when decrypting. To prevent the ambiguity for
  new data, set "meta_version_to_write = 3" in your keymaster
  configuration *after* upgrading all proxy servers.

  If upgrading from Swift 2.20.0 or Swift 2.19.1 or earlier, set
  "meta_version_to_write = 1" in your keymaster configuration *prior*
  to upgrading.

  See the provided "keymaster.conf-sample" for more information about
  this setting.


Bug Fixes
*********

* Python 3 bug fixes:

  * Fixed an error when reading encrypted data that was written
    while running Python 2 for a path that includes non-ASCII
    characters.

  * Fixed an issue when reading or writing objects with a content-
    type like "message/*". Previously, Swift would fail to respond.

  * Object expiration respects the
    "expiring_objects_container_divisor" config option.

  * "fallocate_reserve" may be specified as a percentage in more
    places.

  * The formpost middleware now works with unicode file names.

  * Certain S3 API headers are now lower case as they would be
    coming from AWS.

* Improved how containers reclaim deleted rows to reduce locking and
  object update throughput.

* Fix a proxy-server error when retrieving erasure coded data when
  there are durable fragments but not enough to reconstruct.

* Fixed 500 from cname_lookup middleware. Previously, if the looked-
  up domain was used by domain_remap to update the request path, the
  server would respond Internal Error.

* The bulk extract middleware once again allows clients to specify
  metadata (including expiration timestamps) for all objects in the
  archive.

* Errors encountered while validating static symlink targets no
  longer cause BadResponseLength errors in the proxy-server.

* Fixed some SignatureDoesNotMatch errors when using the AWS .NET
  SDK.

* Various other minor bug fixes and improvements.

Changes in swift 2.23.1..2.23.2
-------------------------------

ab921f22f ChangeLog for 2.23.2
91b2cd0ac py3: Fix swift-dispersion-populate
40b88bf53 s3api: Allow lower-cased region name for AWS .NET SDK compatibility
eef87ee21 py3: Work with proper native string paths in crypto meta
69225ada6 Stop syncing empty suffixes list
19b909741 py3: Stop munging RAW_PATH_INFO
498454a13 Use latest pip in gate jobs
170dddaac Breakup reclaim into batches
bb1263b8d py3: (Better) fix percentages in configs
9e2805bb7 Use ensure-pip role
71476cce2 py3: Fix expirer container generation
2e50b5817 Use separate name for HeaderKeyDict var vs list of response headers
afb572f60 py3: stop barfing on message/rfc822 Content-Types
4be20e0d8 Ensure domain stored in memcached gets utf8 decoded on py2
b76ea70b0 tests: Use timedelta to adjust dates, not string manipulations
092054da6 s3api: Better handle 498/429 responses
e413c650e Allow bulk to fwd some headers at tar extraction
48099c982 py3: Fix formpost unicode filename issues
d1d0b706e account-server: Correctly handle containers starting with delimiter
f98396e6a py3: Fix s3api header casing
4963aebd3 Update known-failures and config for up-rev'ed ceph/s3tests
289181ea3 Fix BadResponseLength error when creating symlink
6e4fe1d5f Switch py2 DSVM jobs to only run swift under py2
a96e8c05c Make our py2 func tests more explicitly py2
40f9b9068 Fix misleading error msg if swift.conf unreadable
c23f4fe24 pin lower-constraints to run against python 2.7


Diffstat (except docs and test files)
-------------------------------------

.zuul.yaml                                         |  54 +++--
CHANGELOG                                          |  49 ++++
bin/swift-dispersion-populate                      |   9 +-
etc/keymaster.conf-sample                          |  27 +++
etc/proxy-server.conf-sample                       |  12 +
.../notes/2_23_2_release-03f1cc3f2e28c7b3.yaml     |  69 ++++++
swift/account/backend.py                           |   2 +-
swift/common/bufferedhttp.py                       |   2 +
swift/common/db.py                                 |  53 ++++-
swift/common/header_key_dict.py                    |  37 +--
swift/common/http.py                               |   1 +
swift/common/middleware/bulk.py                    |  11 +
swift/common/middleware/cname_lookup.py            |  17 +-
swift/common/middleware/crypto/keymaster.py        |  61 ++++-
swift/common/middleware/formpost.py                |  10 +-
swift/common/middleware/s3api/s3request.py         |  18 +-
swift/common/middleware/s3api/s3response.py        |  44 +---
swift/common/middleware/symlink.py                 |  12 +-
swift/common/utils.py                              |  65 ++++--
swift/common/wsgi.py                               |  36 ++-
swift/container/backend.py                         |  10 +-
swift/obj/replicator.py                            |   3 +
swift/proxy/controllers/obj.py                     |  10 +-
test/unit/account/test_backend.py                  |  66 ++++++
test/unit/account/test_server.py                   |  51 +++++
.../common/middleware/crypto/test_keymaster.py     | 227 ++++++++++++++++++-
test/unit/common/middleware/s3api/__init__.py      |   6 +-
.../unit/common/middleware/s3api/test_s3request.py |   6 +-
.../common/middleware/s3api/test_s3response.py     |  18 ++
test/unit/common/middleware/test_bulk.py           |  39 +++-
test/unit/common/middleware/test_cname_lookup.py   |   9 +
test/unit/common/middleware/test_formpost.py       | 124 +++++++++-
test/unit/common/middleware/test_symlink.py        |  15 ++
test/unit/common/ring/test_ring.py                 |   2 +-
test/unit/common/test_db.py                        |   2 +-
test/unit/common/test_utils.py                     |  26 ++-
test/unit/common/test_wsgi.py                      |  99 +++++---
test/unit/container/test_backend.py                |  93 ++++++++
test/unit/obj/test_replicator.py                   |  37 ++-
test/unit/proxy/controllers/test_obj.py            |  12 +
test/unit/proxy/test_server.py                     |  11 +-
tools/playbooks/common/install_dependencies.yaml   |   8 +-
tox.ini                                            |  13 +-
45 files changed, 1515 insertions(+), 223 deletions(-)







More information about the Release-announce mailing list