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(-)
participants (1)
-
no-reply@openstack.org