)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6fc621252206d8bdba3d374dd6bac11010b74adf","unresolved":false,"context_lines":[{"line_number":42,"context_line":" 4. Once all nodes are upgraded, remove the write_legacy_ec_crc option"},{"line_number":43,"context_line":"    from all configs across all nodes. After restarting daemons, they"},{"line_number":44,"context_line":"    will write zlib CRCs which will also be readable by all nodes."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Change-Id: Iff71069f808623453c0ff36b798559015e604c7d"},{"line_number":47,"context_line":"Related-Bug: #1666320"},{"line_number":48,"context_line":"Closes-Bug: #1886088"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_c6cf75ae","line":45,"updated":"2020-08-13 03:45:21.000000000","message":"Perhaps, we need UpgradeImpacts tag to notify to the operators, right?","commit_id":"eb529dc38100e3557214917e584b792242e8b0cb"}],"swift/obj/reconstructor.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6fc621252206d8bdba3d374dd6bac11010b74adf","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        # When upgrading from liberasurecode\u003c\u003d1.5.0, you may want to continue"},{"line_number":213,"context_line":"        # writing legacy CRCs until all nodes are upgraded and capabale of"},{"line_number":214,"context_line":"        # reading fragments with zlib CRCs."},{"line_number":215,"context_line":"        # See https://bugs.launchpad.net/liberasurecode/+bug/1886088 for more"},{"line_number":216,"context_line":"        # information."},{"line_number":217,"context_line":"        if \u0027write_legacy_ec_crc\u0027 in conf:"},{"line_number":218,"context_line":"            if config_true_value(conf[\u0027write_legacy_ec_crc\u0027]):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_26491132","line":215,"range":{"start_line":215,"start_character":14,"end_line":215,"end_character":69},"updated":"2020-08-13 03:45:21.000000000","message":"Good job. This bug report includes the fragment check script.","commit_id":"eb529dc38100e3557214917e584b792242e8b0cb"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6fc621252206d8bdba3d374dd6bac11010b74adf","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        # See https://bugs.launchpad.net/liberasurecode/+bug/1886088 for more"},{"line_number":216,"context_line":"        # information."},{"line_number":217,"context_line":"        if \u0027write_legacy_ec_crc\u0027 in conf:"},{"line_number":218,"context_line":"            if config_true_value(conf[\u0027write_legacy_ec_crc\u0027]):"},{"line_number":219,"context_line":"                os.environ[\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027] \u003d \u0027true\u0027"},{"line_number":220,"context_line":"            else:"},{"line_number":221,"context_line":"                os.environ.pop(\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_e63f1985","line":218,"updated":"2020-08-13 03:45:21.000000000","message":"As I commented at liberasurecode patch *1, *In liberasurecode* any values of LIBERASURECODE_WRITE_LEGACY_CRC will cause legacy crc. *In Swift config here*, only config_true_value will do.\n\nPossibly same configuration syntax/semantics may be easy to understand for operators.\n\n*1 https://review.opendev.org/#/c/738959/2/src/erasurecode_postprocessing.c@63","commit_id":"eb529dc38100e3557214917e584b792242e8b0cb"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"b398b6be077993adb0f72ad697d0a896871ea8cc","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        # See https://bugs.launchpad.net/liberasurecode/+bug/1886088 for more"},{"line_number":216,"context_line":"        # information."},{"line_number":217,"context_line":"        if \u0027write_legacy_ec_crc\u0027 in conf:"},{"line_number":218,"context_line":"            if config_true_value(conf[\u0027write_legacy_ec_crc\u0027]):"},{"line_number":219,"context_line":"                os.environ[\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027] \u003d \u0027true\u0027"},{"line_number":220,"context_line":"            else:"},{"line_number":221,"context_line":"                os.environ.pop(\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_2cacf433","line":218,"in_reply_to":"9f560f44_e63f1985","updated":"2020-08-19 23:58:35.000000000","message":"I think the environment variable is an implementation detail for operators. They are unlikely to deal with it directly, only ever configuring Swift.","commit_id":"eb529dc38100e3557214917e584b792242e8b0cb"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"603dc834bc27482111b220bfb3ede04bdcab306e","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        # information."},{"line_number":217,"context_line":"        if \u0027write_legacy_ec_crc\u0027 in conf:"},{"line_number":218,"context_line":"            if config_true_value(conf[\u0027write_legacy_ec_crc\u0027]):"},{"line_number":219,"context_line":"                os.environ[\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027] \u003d \u0027true\u0027"},{"line_number":220,"context_line":"            else:"},{"line_number":221,"context_line":"                os.environ.pop(\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027, None)"},{"line_number":222,"context_line":"        # else, assume operators know what they\u0027re doing and leave env alone"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_6746b0a9","line":219,"range":{"start_line":219,"start_character":65,"end_line":219,"end_character":69},"updated":"2020-09-24 19:34:51.000000000","message":"Should maybe make this \u00271\u0027 in light of the recent direction for the libec patch.","commit_id":"dac57af2a571066a9f70bf806bf9a88bb5bfb7c3"}],"swift/proxy/server.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"603dc834bc27482111b220bfb3ede04bdcab306e","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        # information."},{"line_number":296,"context_line":"        if \u0027write_legacy_ec_crc\u0027 in conf:"},{"line_number":297,"context_line":"            if config_true_value(conf[\u0027write_legacy_ec_crc\u0027]):"},{"line_number":298,"context_line":"                os.environ[\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027] \u003d \u0027true\u0027"},{"line_number":299,"context_line":"            else:"},{"line_number":300,"context_line":"                os.environ.pop(\u0027LIBERASURECODE_WRITE_LEGACY_CRC\u0027, None)"},{"line_number":301,"context_line":"        # else, assume operators know what they\u0027re doing and leave env alone"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_c7c69c16","line":298,"range":{"start_line":298,"start_character":65,"end_line":298,"end_character":69},"updated":"2020-09-24 19:34:51.000000000","message":"ditto","commit_id":"dac57af2a571066a9f70bf806bf9a88bb5bfb7c3"}]}
