)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"dd4e4cdc4ede6bab33b8fed4ce95727b9796e9db","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add --reconstruct option to verify command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Turns out reconstruction has the potential to return corrupt data, too."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib0ae20d0c18ee09ccecbca085497989d2c9f8622"},{"line_number":12,"context_line":"Signed-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a7afc312_ba59579a","line":9,"range":{"start_line":9,"start_character":46,"end_line":9,"end_character":65},"updated":"2025-11-28 00:01:01.000000000","message":"😬\n```\n% pyeclib-backend verify --ec-type flat_xor_hd_3 -k 3 -m 3 -u 3 -r\nUsing 3 data + 3 parity with 3 unavailable frags\nflat_xor_hd_3 combinations\u003d60, failures\u003d0, corrupt\u003d33\n```","commit_id":"f06aaa87b4ad4c22b30077e1b2fd0794074d989b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"eea2268a2239438fc7f4a7f9350d4825affa6e5f","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add --reconstruct option to verify command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Turns out reconstruction has the potential to return corrupt data, too."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib0ae20d0c18ee09ccecbca085497989d2c9f8622"},{"line_number":12,"context_line":"Signed-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7eb40de9_788c2cb5","line":9,"range":{"start_line":9,"start_character":46,"end_line":9,"end_character":65},"in_reply_to":"a7afc312_ba59579a","updated":"2025-12-03 18:35:39.000000000","message":"See https://review.opendev.org/c/openstack/liberasurecode/+/969331 for the fix.","commit_id":"f06aaa87b4ad4c22b30077e1b2fd0794074d989b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ea8435ec29c93113e2de90bddf020ef540a5aab7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8c58e064_2e13e33d","updated":"2026-01-09 21:15:56.000000000","message":"Corruption is bad. Detecting the possibility of corruption is good.","commit_id":"797b7cc93672f109bea03da6e9dec716fa350393"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2c4c4676474ec511db152dc534c1492a7d0e2f29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d26127c3_34da7126","updated":"2026-01-09 23:20:36.000000000","message":"recheck\n\nI don\u0027t like how flakey `test/test_pyeclib_api.py::TestPyECLibDriver::test_get_metadata_memory_usage` is...","commit_id":"797b7cc93672f109bea03da6e9dec716fa350393"}],"pyeclib/cli/verify.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"eea2268a2239438fc7f4a7f9350d4825affa6e5f","unresolved":true,"context_lines":[{"line_number":70,"context_line":"            print(f\"\\x1b[91;40m{ec_type:\u003c{width}} {combinations\u003d}, \""},{"line_number":71,"context_line":"                  f\"{failures\u003d}, {corrupt\u003d}\\x1b[0m\")"},{"line_number":72,"context_line":"        elif failures:"},{"line_number":73,"context_line":"            print(f\"\\x1b[1;91m{ec_type:\u003c{width}} {combinations\u003d}, \""},{"line_number":74,"context_line":"                  f\"{failures\u003d}, {corrupt\u003d}\\x1b[0m\")"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            print(f\"{ec_type:\u003c{width}} {combinations\u003d}\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"80be4095_5a903c30","line":73,"updated":"2025-12-03 18:35:39.000000000","message":"Some failures may be expected when doing reconstruction verification (think xor codes with many frags unavailable); we probably don\u0027t want to change the color for that. Instead rely on the presence of failures at all to differentiate from the \"all good\" case.","commit_id":"f06aaa87b4ad4c22b30077e1b2fd0794074d989b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f2daa4d7da097a639e279fe9197e477cc8477c63","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            print(f\"\\x1b[91;40m{ec_type:\u003c{width}} {combinations\u003d}, \""},{"line_number":71,"context_line":"                  f\"{failures\u003d}, {corrupt\u003d}\\x1b[0m\")"},{"line_number":72,"context_line":"        elif failures:"},{"line_number":73,"context_line":"            print(f\"\\x1b[1;91m{ec_type:\u003c{width}} {combinations\u003d}, \""},{"line_number":74,"context_line":"                  f\"{failures\u003d}, {corrupt\u003d}\\x1b[0m\")"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            print(f\"{ec_type:\u003c{width}} {combinations\u003d}\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"9be76ce0_11b4dafc","line":73,"in_reply_to":"80be4095_5a903c30","updated":"2026-01-09 20:07:26.000000000","message":"Done","commit_id":"f06aaa87b4ad4c22b30077e1b2fd0794074d989b"}]}
