diff --git a/AUTHORS b/AUTHORS index fe932d3c1f..3ed3a80b65 100644 --- a/AUTHORS +++ b/AUTHORS @@ -97,6 +97,7 @@ cheng (li.chenga@h3c.com) Cheng Li (shcli@cn.ibm.com) chengebj5238 (chengebj@inspur.com) chenxiangui (chenxiangui@inspur.com) +Chetan Mishra (chetan.s115@gmail.com) Chmouel Boudjnah (chmouel@enovance.com) Chris Smart (chris.smart@humanservices.gov.au) Chris Wedgwood (cw@f00f.org) @@ -355,6 +356,7 @@ Pete Zaitcev (zaitcev@kotori.zaitcev.us) Peter Lisák (peter.lisak@gmail.com) Peter Portante (peter.portante@redhat.com) Petr Kovar (pkovar@redhat.com) +Philippe SERAPHIN (philippe.seraphin@infomaniak.com) Pradeep Kumar Singh (pradeep.singh@nectechnologies.in) Prashanth Pai (ppai@redhat.com) Pádraig Brady (pbrady@redhat.com) @@ -391,6 +393,7 @@ shaofeng_cheng (chengsf@winhong.com) Shashank Kumar Shankar (shashank.kumar.shankar@intel.com) Shashirekha Gundur (shashirekha.j.gundur@intel.com) Shilla Saebi (shilla.saebi@gmail.com) +Shreeya Deshpande (shreeyad@nvidia.com) Shri Javadekar (shrinand@maginatics.com) Simeon Gourlin (simeon.gourlin@infomaniak.com) Sivasathurappan Radhakrishnan (siva.radhakrishnan@intel.com) @@ -440,6 +443,7 @@ wangdequn (wangdequn@inspur.com) wanghongtaozz (wanghongtaozz@inspur.com) wanghui (wang_hui@inspur.com) wangqi (wang.qi@99cloud.net) +Wei LingFei (weilingfei@uniontech.com) whoami-rajat (rajatdhasmana@gmail.com) wu.shiming (wushiming@yovole.com) Wu Wenxiang (wu.wenxiang@99cloud.net) diff --git a/CHANGELOG b/CHANGELOG index 00b4f53a0a..94b27db184 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,102 @@ +swift (2.32.0, OpenStack Bobcat) + + * Python 3 fixes: + + * Python 3 object servers can now read unencrypted non-ASCII metadata + that was written under Python 2. + + * Ssync no longer corrupts unencrypted non-ASCII metadata during + transfers. + + * Fixed an encoding issue when writing non-ASCII object names to sharded + containers and shard range caching is not enabled. + + * Fixed an encoding issue when handling non-ASCII account names. + + * Fixed a `generator already executing` error on client disconnect. + + * Suppressed `RemoteDisconnected` tracebacks. + + * Metrics improvements: + + * Metrics are now emitted for a variety of S3 error responses, in the + form `s3api..[.]` + + * Fixed an issue that prevented proxy servers from emitting metrics and + logs for backend requests made when getting account or container info. + + * Account and container info metrics now include the response status code + when backend requests are made. + + * Added timing metrics to the container sharder for various operations. + + * Python 3.11 is now supported. + + * Added the ability for reseller admins to set per-policy account quotas by + posting metadata of the form `X-Account-Quota-Bytes-Policy-`. + + * Added a `keepalive_timeout` option to the proxy server to limit how long + to wait for a client to initiate a request, separate from the general + `client_timeout` option. Note that this requires eventlet 0.33.4 + (currently unreleased) or later. + + * Added a `keep_cache_slo_manifest` option to the object server to better + control whether SLO manifests are dropped from the page cache. + + * WSGI servers now accept a `--test-config` option that may be used to + validate configuration changes before reloading/restarting the server. + + * The structure of cached shard ranges has changed, improving performance + when listing or writing to sharded containers. Note that immediately + after upgrade, the new structures will all be cache misses, which may + lead to a thundering herd problem. To avoid this, upgrade just a few + nodes first, let them service some fraction of traffic to populate the + cache, then upgrade the rest of the cluster. + + * A variety of performance improvements have been made for sharded + container databases. + + * Various logging and metrics improvements when talking to memcache. + + * Fixed ssync's handling of timestamp offsets. Previously, this could cause + ssync to fail with a 409 Conflict, causing the transfer to fail and + preventing handoffs from clearing. + + * Fixed an issue where an erasure-coded PUT could prevent other requests + from being processed when network calls rarely or never blocked. + + * Fixed an issue when downloading an SLO manifest would hit a recoverable + error and attempt to resume from another node. This would manifest as + either a pyeclib decode error or an unexpected empty response. + + * The proxy server now applies error-limiting to the correct node when + handling a recoverable node error. + + * Account, container, and object log fields are now correctly identified + when returning `BadDigest` responses to S3 requests. + + * Previously, under some circumstances, a non-standard config option such + as `RECLAIM_AGE` might get parsed as `reclaim_age` for some processes + but ignored by others. Now, all config parsing is case-sensitive; + non-standard names will always be ignored. + + * Reduced the backend load of making `?versions` requests to a container + that has never had object versioning enabled. + + * Improved formatting of meta and sysmeta for `swift-account-info` and + `swift-container-info`. + + * The standard-library `logging` module is no longer monkey-patched when + importing `swift.common.utils`, making it easier to re-use swift code + in other contexts. + + * Removed the hard dependency on netifaces; it may still be used if the + `getifaddrs` C function is not available. This fallback support may be + removed in a future release. + + * Various other minor bug fixes and improvements. + + swift (2.31.1, OpenStack Antelope) * Sharding fixes diff --git a/releasenotes/notes/2_32_0_release-39c8fb77a0a3e72d.yaml b/releasenotes/notes/2_32_0_release-39c8fb77a0a3e72d.yaml new file mode 100644 index 0000000000..240daa5a17 --- /dev/null +++ b/releasenotes/notes/2_32_0_release-39c8fb77a0a3e72d.yaml @@ -0,0 +1,122 @@ +--- +features: + - | + Python 3.11 is now supported. + + - | + Added the ability for reseller admins to set per-policy account quotas by + posting metadata of the form ``X-Account-Quota-Bytes-Policy-``. + + - | + Added a ``keepalive_timeout`` option to the proxy server to limit how long + to wait for a client to initiate a request, separate from the general + ``client_timeout`` option. Note that this requires eventlet 0.33.4 + (currently unreleased) or later. + + - | + Added a ``keep_cache_slo_manifest`` option to the object server to better + control whether SLO manifests are dropped from the page cache. + + - | + WSGI servers now accept a ``--test-config`` option that may be used to + validate configuration changes before reloading/restarting the server. + + - | + Metrics improvements: + + * Metrics are now emitted for a variety of S3 error responses, in the + form ``s3api..[.]`` + + * Account and container info metrics now include the response status code + when backend requests are made. + + * Added timing metrics to the container sharder for various operations. + + - | + A variety of performance improvements have been made for sharded + container databases. + + - | + Various logging and metrics improvements when talking to memcache. + + - | + Improved formatting of meta and sysmeta for ``swift-account-info`` and + ``swift-container-info``. + +upgrade: + - | + Previously, under some circumstances, a non-standard config option such + as ``RECLAIM_AGE`` might get parsed as ``reclaim_age`` for some processes + but ignored by others. Now, all config parsing is case-sensitive; + non-standard names will always be ignored. + + - | + The structure of cached shard ranges has changed, improving performance + when listing or writing to sharded containers. Note that immediately + after upgrade, the new structures will all be cache misses, which may + lead to a thundering herd problem. To avoid this, upgrade just a few + nodes first, let them service some fraction of traffic to populate the + cache, then upgrade the rest of the cluster. + +deprecations: + - | + Removed the hard dependency on netifaces; it may still be used if the + ``getifaddrs`` C function is not available. This fallback support may be + removed in a future release. + +fixes: + - | + Python 3 fixes: + + * Python 3 object servers can now read unencrypted non-ASCII metadata + that was written under Python 2. + + * Ssync no longer corrupts unencrypted non-ASCII metadata during + transfers. + + * Fixed an encoding issue when writing non-ASCII object names to sharded + containers and shard range caching is not enabled. + + * Fixed an encoding issue when handling non-ASCII account names. + + * Fixed a ``generator already executing`` error on client disconnect. + + * Suppressed ``RemoteDisconnected`` tracebacks. + + - | + Fixed an issue that prevented proxy servers from emitting metrics and + logs for backend requests made when getting account or container info. + + - | + Fixed ssync's handling of timestamp offsets. Previously, this could cause + ssync to fail with a 409 Conflict, causing the transfer to fail and + preventing handoffs from clearing. + + - | + Fixed an issue where an erasure-coded PUT could prevent other requests + from being processed when network calls rarely or never blocked. + + - | + Fixed an issue when downloading an SLO manifest would hit a recoverable + error and attempt to resume from another node. This would manifest as + either a pyeclib decode error or an unexpected empty response. + + - | + The proxy server now applies error-limiting to the correct node when + handling a recoverable node error. + + - | + Account, container, and object log fields are now correctly identified + when returning ``BadDigest`` responses to S3 requests. + + - | + Reduced the backend load of making ``?versions`` requests to a container + that has never had object versioning enabled. + + - | + The standard-library ``logging`` module is no longer monkey-patched when + importing ``swift.common.utils``, making it easier to re-use swift code + in other contexts. + + - | + Various other minor bug fixes and improvements.