開発中バージョンのリリースノート¶
2.35.0-89¶
新機能¶
S3 API
Added support for aws-chunked transfers. Recent AWS clients recently began defaulting to this mode. See also: Transferring Payload in Multiple Chunks (Chunked Upload).
Added support for verifying additional checksums during upload. All algorithms currently supported by AWS are supported: CRC64NVME, CRC32, CRC32C, SHA1, and SHA256. See also: Checking object integrity in Amazon S3. Note that some algorithms require the availability of additional libraries: ISA-L or anycrc.
Added support for create-without-overwrite conditional writes.
Let clients request heartbeats during COPYs by including the query parameter
heartbeat=on
.With heartbeating turned on, the proxy will start its response immediately with 202 Accepted then send a single whitespace character periodically until the request completes. At that point, a final summary chunk will be sent which includes a
Response Status
key indicating success or failure.
Labeled metrics
Added support for emitting labeled statsd metrics in a variety of formats. Middleware authors should see the LabeledStatsdClient documentation for more information.
Instrumented proxy-logging with labeled metrics. See
proxy-server.conf-sample
for more information.Instrumented the object-server with labeled metrics. See
object-server.conf-sample
for more information.
Added
access_user_id
logging field; out-of-tree auth middlewares should useenviron['swift.access_logging']['user_id']
to populate this field.
Introduced an extensible ring format. This allows both more than 65,536 devices and more data structures to be in a ring. For more information, see Ring File Formats -- Ring v2.
Python 3.13 (with the GIL enabled) is now supported. Free-threaded builds remain untested.
アップグレード時の注意¶
Removed support for Python 3.6.
Removed support for pickled ring files. These have not been written since Swift 1.7.0.
廃止予定の機能¶
Flamingo (2025.2) will be the final stable release to support Python 3.7 and 3.8.
バグ修正¶
S3 API
Fixed HTTP framing issues when returning errors for a request with
Expect: 100-continue
.Improved various error messages to better imitate AWS responses.
SSYNC connections are now promptly terminated when subrequests timeout.
Fixed a recursion error in the account-quota middleware.
Fixed an error in
invalidate_hash
when the partition is deleted while waiting for the partition lock.
様々な他のマイナーなバグ修正と改善。
2.35.0¶
新機能¶
Account listings now include storage policy information for the containers listed.
Added a new object-expirer configuration option,
round_robin_task_cache_size
, to adjust the number of tasks to cache before processing. This may be used to trade faster expirer start-up for more lumpy container-server load.
Added a
stale_worker_timeout
configuration option to the WSGI servers. Once this time elapses following a reload, the manager process will issue SIGKILLs to any remaining stale workers.
Object updater observability improvements:
Added last start time to recon dumps as
object_updater_last
.Added information (including target account/container) from oldest failed updates to recon dumps, both per-device and aggregated for the node. Use the new
async_tracker_max_entries
andasync_tracker_dump_count
options to adjust how many records to collect.
Added the option to tune down ETag validation in the object-server during full-object reads. By default, every full read will continue to have its ETag validated as bytes are streamed to the proxy-server. The
etag_validate_pct
option may be used to configure approximately what percentage of full-object reads should be validated; reducing this can improve performance when object-servers are CPU-constrained.Partial reads continue to never have their ETag validated in the object-server. The object-auditor continues to periodically validate every object's ETag.
廃止予定の機能¶
The object-expirer configuration options
expiring_objects_container_divisor
andexpiring_objects_account_name
are now deprecated.If a cluster was deployed with a non-standard account name, operators should remove the option from all configs so they are using a supported configuration going forward, but will need to deploy stand-alone expirer processes with legacy expirer config to clean-up old expiration tasks from the previously configured account name.
バグ修正¶
Removed the use of
eval
in the xprofile middleware. Note that this middleware is only intended for development purposes and is not intended for use in production systems.
The S3 API no longer requires a
Content-MD5
header forDeleteObjects
requests when using v4 signatures.
Uploads to containers with object versioning enabled now require a
Content-Length
orTransfer-Encoding: chunked
header, similar to other containers.
Fixed a server error when deleting a specific version via the S3 API.
X-Open-Expired
now works properly with?part-number
requests.
Fixed
Content-Type
andContent-Length
headers in account and containerHEAD
responses (with eventlet>=0.38.0).
Object expiration fixes:
The object-expirer now better handles errors during listings.
The object-expirer now respects the
internal_client_conf_path
configuration option in legacyobject-expirer.conf
configs.
Improved the reliability of
swift-reload
.
Separated unlinks-due-to-outdated-updates from unlinks-due-to-fully-processed-updates in logged object-updater stats.
The
cooperative_period
option for the object-server now affects PUT requests in a way similar to GET responses.
Fixed an issue with the object-reconstructor that would prevent reconstruction of objects with non-ASCII header names.
Fixed an issue with the container-reconciler that could cause reconciler databases to have conflicting rows that could not be resolved.
Removed use of the deprecated cgi module.
様々な他のマイナーなバグ修正と改善。