)]}'
{"CHANGELOG":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"207b6ed0525048a23f07b11494276f89c794f378","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    * Sharding improvements:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"      * Prevent object updates from auto-creating shard containers. This"},{"line_number":62,"context_line":"        ensures more consistent listings for sharded containers."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"      * Deleted shard containers are no longer considered root containers."},{"line_number":65,"context_line":"        This prevents unnecessary sharding audit failures and allows the"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"9f560f44_a3360f01","line":62,"updated":"2020-09-09 19:58:06.000000000","message":"... especially during re-balance","commit_id":"413751f06c210f2bdb7b204ebf4fe0adc2d1485a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f88915ef62a851a0936f6c2716a7df252801b7ea","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    * Sharding improvements:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"      * Prevent object updates from auto-creating shard containers. This"},{"line_number":62,"context_line":"        ensures more consistent listings for sharded containers."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"      * Deleted shard containers are no longer considered root containers."},{"line_number":65,"context_line":"        This prevents unnecessary sharding audit failures and allows the"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"9f560f44_78cc9d69","line":62,"in_reply_to":"9f560f44_a3360f01","updated":"2020-09-10 23:15:26.000000000","message":"Done","commit_id":"413751f06c210f2bdb7b204ebf4fe0adc2d1485a"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"207b6ed0525048a23f07b11494276f89c794f378","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * Server workers may now be gracefully terminated via `SIGHUP` or"},{"line_number":80,"context_line":"      `SIGUSR1`. The parent process will then spawn a fresh worker."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    * Improved cache management for account and container responses."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    * Allow proxy-logging middlewares to be configured more independently."},{"line_number":85,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"9f560f44_431e1370","line":82,"updated":"2020-09-09 19:58:06.000000000","message":"this is the 503 cache busing fix?","commit_id":"413751f06c210f2bdb7b204ebf4fe0adc2d1485a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f88915ef62a851a0936f6c2716a7df252801b7ea","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * Server workers may now be gracefully terminated via `SIGHUP` or"},{"line_number":80,"context_line":"      `SIGUSR1`. The parent process will then spawn a fresh worker."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    * Improved cache management for account and container responses."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    * Allow proxy-logging middlewares to be configured more independently."},{"line_number":85,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"9f560f44_58c71946","line":82,"in_reply_to":"9f560f44_431e1370","updated":"2020-09-10 23:15:26.000000000","message":"Yup.","commit_id":"413751f06c210f2bdb7b204ebf4fe0adc2d1485a"}],"releasenotes/notes/2_26_0_release-6548eadcba544f72.yaml":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f88915ef62a851a0936f6c2716a7df252801b7ea","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Add a new ``concurrent_ec_extra_requests`` option to allow the proxy to "},{"line_number":10,"context_line":"    make some extra backend requests immediately. The proxy will respond as "},{"line_number":11,"context_line":"    soon as there are enough responses available to reconstruct."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f560f44_fee6bee6","line":10,"updated":"2020-09-10 23:15:26.000000000","message":"Bah -- I should clean up the trailing spaces if I respin this.","commit_id":"a9f0b827ee83d066ac715655311c18f30f8a1b19"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cce0491a399164cf9fa3c52135dd49d4da6d7755","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  - |"},{"line_number":120,"context_line":"    The above bug was caused by a difference in string types that resulted"},{"line_number":121,"context_line":"    in ambiguity when decrypting. To prevent the ambiguity for new data, set"},{"line_number":122,"context_line":"    ``meta_version_to_write \u003d 3`` in your keymaster configuration *after*"},{"line_number":123,"context_line":"    upgrading all servers. See the provided ``keymaster.conf-sample`` for"},{"line_number":124,"context_line":"    more information about this setting."},{"line_number":125,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f560f44_7e6e2e2c","line":122,"range":{"start_line":122,"start_character":6,"end_line":122,"end_character":31},"updated":"2020-09-11 05:23:12.000000000","message":"Oh... this should maybe include a note about when you may want to set\n\n meta_version_to_write \u003d 1\n\nprior to upgrading...","commit_id":"a9f0b827ee83d066ac715655311c18f30f8a1b19"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cce0491a399164cf9fa3c52135dd49d4da6d7755","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    The above bug was caused by a difference in string types that resulted"},{"line_number":121,"context_line":"    in ambiguity when decrypting. To prevent the ambiguity for new data, set"},{"line_number":122,"context_line":"    ``meta_version_to_write \u003d 3`` in your keymaster configuration *after*"},{"line_number":123,"context_line":"    upgrading all servers. See the provided ``keymaster.conf-sample`` for"},{"line_number":124,"context_line":"    more information about this setting."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f560f44_3e72f6e3","line":123,"range":{"start_line":123,"start_character":14,"end_line":123,"end_character":25},"updated":"2020-09-11 05:23:12.000000000","message":"\u003e all *proxy* servers","commit_id":"a9f0b827ee83d066ac715655311c18f30f8a1b19"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f88915ef62a851a0936f6c2716a7df252801b7ea","unresolved":false,"context_lines":[{"line_number":60,"context_line":"  - |"},{"line_number":61,"context_line":"    Improve performance when increasing partition power."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"issues:"},{"line_number":64,"context_line":"  - |"},{"line_number":65,"context_line":"    In a rolling upgrade from liberasurecode 1.5.0 or earlier to 1.6.0 or"},{"line_number":66,"context_line":"    later, object-servers may quarantine newly-written data, leading to"},{"line_number":67,"context_line":"    availability issues or even data loss. See `bug 1886088"},{"line_number":68,"context_line":"    \u003chttps://bugs.launchpad.net/liberasurecode/+bug/1886088\u003e`__ for more"},{"line_number":69,"context_line":"    information, including how to determine whether you are affected."},{"line_number":70,"context_line":"    Several mitigations are available to operators:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    * If proxy and object layers can be upgraded independently and proxies"},{"line_number":73,"context_line":"      can be upgraded quickly:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"      1. Stop and disable the object-reconstructor before upgrading. This"},{"line_number":76,"context_line":"         ensures no upgraded object server starts writing new fragments"},{"line_number":77,"context_line":"         that old object servers would quarantine."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"      2. Upgrade liberasurecode on all object servers. Object servers can"},{"line_number":80,"context_line":"         now read both old and new fragments."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"      3. Upgrade liberasurecode on all proxy servers. Newly-written data"},{"line_number":83,"context_line":"         will now use new fragments. Note that not-yet-upgraded proxies"},{"line_number":84,"context_line":"         will not be able to read these newly-written fragments but will"},{"line_number":85,"context_line":"         instead respond ``500 Internal Server Error``."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"      4. After upgrading, re-enable and restart the object-reconstructor."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    * If your users can tolerate it, consider a read-only rolling upgrade."},{"line_number":90,"context_line":"      Before upgrading, enable the `read-only middleware"},{"line_number":91,"context_line":"      \u003chttps://docs.openstack.org/swift/latest/middleware.html#read-only\u003e`__"},{"line_number":92,"context_line":"      cluster-wide to prevent new writes during the upgrade. Additionally,"},{"line_number":93,"context_line":"      stop and disable the object-reconstructor as above. Upgrade normally,"},{"line_number":94,"context_line":"      then disable the read-only middleware and re-enable and restart the"},{"line_number":95,"context_line":"      object-reconstructor."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    * Avoid upgrading liberasurecode until swift and liberasurecode"},{"line_number":98,"context_line":"      better-support a rolling upgrade. Swift remains compatible with"},{"line_number":99,"context_line":"      liberasurecode 1.5.0 and earlier."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    .. note::"},{"line_number":102,"context_line":"       Ubuntu 18.04 and RDO\u0027s CentOS 7 repos package liberasurecode 1.5.0,"},{"line_number":103,"context_line":"       while Ubuntu 20.04 and RDO\u0027s CentOS 8 repos currently package"},{"line_number":104,"context_line":"       liberasurecode 1.6.0 or 1.6.1. Take care when upgrading major distro"},{"line_number":105,"context_line":"       versions!"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"upgrade:"},{"line_number":108,"context_line":"  - |"},{"line_number":109,"context_line":"    **If your cluster has encryption enabled and is still running Swift"},{"line_number":110,"context_line":"    under Python 2**, we recommend upgrading Swift *before* transitioning to"},{"line_number":111,"context_line":"    Python 3. Otherwise, new writes to objects with non-ASCII characters"},{"line_number":112,"context_line":"    in their paths may result in corrupted downloads when read from a"},{"line_number":113,"context_line":"    proxy-server still running old swift on Python 2. See `bug 1888037"},{"line_number":114,"context_line":"    \u003chttps://bugs.launchpad.net/swift/+bug/1888037\u003e`__ for more information."},{"line_number":115,"context_line":"    Note that new tags including a fix for the bug are planned for all"},{"line_number":116,"context_line":"    maintained stable branches; upgrading to any one of those should be"},{"line_number":117,"context_line":"    sufficient to ensure a smooth upgrade to the latest Swift."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"  - |"},{"line_number":120,"context_line":"    The above bug was caused by a difference in string types that resulted"},{"line_number":121,"context_line":"    in ambiguity when decrypting. To prevent the ambiguity for new data, set"},{"line_number":122,"context_line":"    ``meta_version_to_write \u003d 3`` in your keymaster configuration *after*"},{"line_number":123,"context_line":"    upgrading all servers. See the provided ``keymaster.conf-sample`` for"},{"line_number":124,"context_line":"    more information about this setting."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"  - |"},{"line_number":127,"context_line":"    **If your cluster is configured with a separate replication network**,"},{"line_number":128,"context_line":"    note that background daemons will switch to using this network for all"},{"line_number":129,"context_line":"    traffic. If your account, container, or object replication servers are"},{"line_number":130,"context_line":"    configured with ``replication_server \u003d true``, these daemons may log a"},{"line_number":131,"context_line":"    flood of ``405 Method Not Allowed`` messages during a rolling upgrade."},{"line_number":132,"context_line":"    To avoid this, comment out the option and restart replication servers"},{"line_number":133,"context_line":"    before upgrading."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"fixes:"},{"line_number":136,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f560f44_be09e695","line":133,"range":{"start_line":63,"start_character":0,"end_line":133,"end_character":21},"updated":"2020-09-10 23:15:26.000000000","message":"Note that these sections don\u0027t appear verbatim in the CHANGELOG -- I think that\u0027s OK, though?\n\nRegardless, I\u0027d appreciate people taking a close look at these notes in particular.","commit_id":"a9f0b827ee83d066ac715655311c18f30f8a1b19"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6946d5f18f37f5a2555ddaaa3c174d4ea3d11877","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    availability issues or even data loss. See `bug 1886088"},{"line_number":68,"context_line":"    \u003chttps://bugs.launchpad.net/liberasurecode/+bug/1886088\u003e`__ for more"},{"line_number":69,"context_line":"    information, including how to determine whether you are affected."},{"line_number":70,"context_line":"    Several mitigations are available to operators:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    * If proxy and object layers can be upgraded independently and proxies"},{"line_number":73,"context_line":"      can be upgraded quickly:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f560f44_ded5a8b8","line":70,"updated":"2020-09-11 17:59:36.000000000","message":"don\u0027t we have some open patches we could reference from https://bugs.launchpad.net/liberasurecode/+bug/1886088 maybe?","commit_id":"aa298b839327b927591cdee5299bfeb2ffdc45cc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"4006192dd7d70f29c2fdb3145b8469387d4f66a1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    availability issues or even data loss. See `bug 1886088"},{"line_number":68,"context_line":"    \u003chttps://bugs.launchpad.net/liberasurecode/+bug/1886088\u003e`__ for more"},{"line_number":69,"context_line":"    information, including how to determine whether you are affected."},{"line_number":70,"context_line":"    Several mitigations are available to operators:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    * If proxy and object layers can be upgraded independently and proxies"},{"line_number":73,"context_line":"      can be upgraded quickly:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f560f44_727da86b","line":70,"in_reply_to":"9f560f44_ded5a8b8","updated":"2020-09-12 05:20:34.000000000","message":"I could call out that there\u0027s work that\u0027s in-progress down by the \"Avoid upgrading liberasurecode\" option to signal that there will (should?) be a fix in wallaby, but IDK what I\u0027d expect operators to *do* with nitty-gritty details about the patches.\n\nLike, I guess maybe they could judge whether they\u0027d like to carry those patches... but the fact that we haven\u0027t merged them yet is an indication that we don\u0027t entirely trust the approach -- so why should they?\n\nPlus, I feel like the target audience for these release notes are people looking to pick up a tagged version and push it out -- and likely *not* as a package they built themselves. I could be wrong, though. *shrug*","commit_id":"aa298b839327b927591cdee5299bfeb2ffdc45cc"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6946d5f18f37f5a2555ddaaa3c174d4ea3d11877","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    configured with ``replication_server \u003d true``, these daemons may log a"},{"line_number":137,"context_line":"    flood of ``405 Method Not Allowed`` messages during a rolling upgrade."},{"line_number":138,"context_line":"    To avoid this, comment out the option and restart replication servers"},{"line_number":139,"context_line":"    before upgrading."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"fixes:"},{"line_number":142,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f560f44_fe550c51","line":139,"updated":"2020-09-11 17:59:36.000000000","message":"Epic!!!","commit_id":"aa298b839327b927591cdee5299bfeb2ffdc45cc"}]}
