2024.2 Series Release Notes¶
2.34.0¶
New Features¶
Middleware features:
The static large object (SLO) middleware now supports including a
?part-number=<N>
query parameter to request just part of a large object. This may be used to enable efficient parallel downloads. For more information, see the documentation.The S3 API middleware now supports the
?partNumber=<N>
query parameter, enabling parallel downloads.The KMS keymaster now supports overriding the endpoint returned in the Keystone catalog via the
barbican_endpoint
configuration option. This may be useful in multi-region deployments which have multiple endpoints.The backend ratelimiter now supports dynamic reloading of limits. The new configuration options
backend_ratelimit_conf_path
andconfig_reload_interval
control which file is reloaded and how frequently, respectively.The backend ratelimiter now supports per-method, per-device ratelimits. See etc/backend-ratelimit.conf-sample for more information.
The account quota middleware now supports object-count quotas in addition to byte-count quotas, similar to the container quota middleware. For more information, see the documentation.
Object expiration improvements:
Added per-account and per-container reaping delays. These may be used to offer some grace period in which to recover expired objects.
Added a proxy-server configuration option:
allow_open_expired
. This defaults to false; if true, clients may interact with expired objects by including anX-Open-Expired: true
header in GET, HEAD, or POST requests.Expiring object queue entries now include the size of the object to be expired in the
swift_expirer_bytes
parameter of the queue entry’s content-type.Added metrics to count skipped, delayed, and assigned tasks as they’re enumerated.
S3 API error response reasons are now logged as part of the
log_info
field. This can be especially useful when diagnosing HEAD failures, which necessarily have no response body.
Python 3.12 is now supported.
swift-account-info
now supports the--sync
option to display the contents of the incoming and outgoing sync tables, similar toswift-container-info
.
The
swift-drive-audit
tool now works with ISO timestamps in kernel logs.
Upgrade Notes¶
Dependency update: lxml must be at least 4.2.3.
Deprecation Notes¶
Overall account byte quotas should now be set with the
X-Account-Quota-Bytes
header. TheX-Account-Meta-Quota-Bytes
header is now deprecated.
Bug Fixes¶
S3 API fixes:
Fixed a server error when using non-ASCII access key IDs.
Fixed several checksum-related error responses to be more AWS-like.
Using an
X-Remove-Account-Quota-Bytes-Policy-<policy name>
header now removes the per-policy quota, rather than reducing it to zero.
Proxy-server fixes:
Object POSTs now 503 rather than trusting the 404s that might be returned from handoffs when primaries are overloaded.
Client disconnects should always be logged within the context of the appropriate client request. Previously, there were some cases where logging would occur during general garbage collection, leading to incorrect or missing transaction IDs in logs.
The proxy-logging middleware now emits timing and transfer stats for more requests such as auth requests. These will be labeled
UNKNOWN
rather thanaccount
,container
, etc.Fixed a server error when the Swift request path has missing account or container components.
EUCLEAN
errors are better handled on the object server.
The
swift-recon-cron
tool now better handles missing directories.
Various other minor bug fixes and improvements.