Current (Unreleased) Release Notes

2.23.0

New Features

  • Python 3.6 and 3.7 are now fully supported. If you’ve been testing Swift on Python 3, upgrade at your earliest convenience.

  • Added “static symlinks”, which perform some validation as they follow redirects and include more information about their target in container listings. For more information, see the symlink middleware section of the documentation.

  • Multi-character strings may now be used as delimiters in account and container listings.

Upgrade Notes

  • Dependency update: eventlet must be at least 0.25.0. This also dragged forward minimum-supported versions of dnspython (1.15.0), greenlet (0.3.2), and six (1.10.0).

Bug Fixes

  • Python 3 fixes:

    • Removed a request-smuggling vector when running a mixed py2/py3 cluster.

    • Allow fallocate_reserve to be specified as a percentage.

    • Fixed listings for sharded containers.

    • Fixed non-ASCII account metadata handling.

    • Fixed rsync output parsing.

    • Fixed some title-casing of headers.

    If you’ve been testing Swift on Python 3, upgrade at your earliest convenience.

  • Sharding improvements

    • Container metadata related to sharding are now removed when no longer needed.

    • Empty container databases (such as might be created on handoffs) now shard much more quickly.

  • The proxy-server now ignores 404 responses from handoffs that have no data when deciding on the correct response for object requests, similar to what it already does for account and container requests.

  • Static Large Object sizes in listings for versioned containers are now more accurate.

  • When refetching Static Large Object manifests, non-manifest responses are now handled better.

  • S3 API now translates 503 Service Unavailable responses to a more S3-like response instead of raising an error.

  • Improved proxy-to-backend requests to be more RFC-compliant.

  • Various other minor bug fixes and improvements.