2024.1 Series Release Notes¶
2.33.0¶
New Features¶
Prefix-based tempurls may now be used to explore staticweb listings within that prefix. Note that this opens a new ability to list containers from tempurls, but only if staticweb’s
X-Container-Meta-Web-Listings
is enabled.
When generating index pages from listings, staticweb now sends an HTML5 doctype. This makes them PEP 503 compliant, allowing their continued use for simple Python package repositories.
Add basic read support for S3 object locking. This improves compatibility with an Ansible S3 module. Write support is not yet implemented, so get-object-lock-configuration will always 404.
Added a
swift-reload
command to assist with safely reloading WSGI servers.
Daemons now send
STOPPING
andRELOADING
systemd notifications when the service is configured withType=notify
.
Added more metrics to the container-server, allowing GET and PUT timings to be broken out for listings, shard range operations, and container creation.
Added a counter metric to the proxy server when caching shard ranges.
swift-account-info
andswift-container-info
now accept a--sync
flag to show information from the incoming/outgoing sync tables.
Several fixes to prepare for Python 3.12 support. While not yet tested in the gate, initial manual testing looks promising.
Added support for recent versions of eventlet.
Bug Fixes¶
S3 API fixes:
When the
+segments
container’s storage policy differs from that of the primary container, completed manifests are now written with the correct policy in the primary container.If there’s a conflict deleting the in-progress-upload marker when completing a multipart-upload, a 503 is now returned to the client, prompting it to retry.
Added
Accept-Ranges: bytes
to object responses. Range requests have always been supported; now, that support is properly advertised.
Static large object fixes:
Fixed a server error when handling conditional GET requests.
Return an error if the SLO manifest could not be parsed. Previously, a zero-byte response was returned.
Proxy server fixes:
Added a new
swift.proxy_logging_status
request environment key that middlewares may use to override the logged status for a request.Transaction IDs are included in more error responses.
The
recoverable_node_timeout
option no longer applies toX-Newest
GET requests.Improved error-handling in multi-part range responses.
Sharding fixes:
Prevent resets of a shard range’s epoch.
Cleaned up
X-Backend-*
headers in listing responses.Reduced the frequency of
Reclaimable db stuck waiting for shrinking
messages when a root DB has been deleted but its shards have not been shrunk away.The more-efficient shard range structure from the last release is now used when fetching ranges from the backend.
Include more information in shard-replication warnings.
Object server fixes:
Object POSTs and chunked PUTs are no longer accepted when the target drive is already past its
fallocate_reserve
. DELETEs are still allowed.Added the ability to configure cooperative yielding when servicing GET responses, via the
cooperative_period
option. See the example config for more information.Invalid
hashes.invalid
entries are now ignored, rather than causing a complete partition rehash.
Per-service
auto_create_account_prefix
configuration options have been removed. These options were deprecated in favor ofswift.conf
configuration in Swift 2.24.0, part of the OpenStack Ussuri release.
Daemons send object updates via the replication network in more cases.
The dark-data object audit watcher now works with sharded containers. Previously, it would think that all data files were absent from listings.
Various other minor bug fixes and improvements.