)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"c5005a07e178010ef3b43db1fe3fde967459450a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"97356ed7_59affa0b","updated":"2026-01-08 15:26:43.000000000","message":"lgtm","commit_id":"1d2ef056a16275b75aa5c28431ae495deac67f33"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a47a2b46c08c0361533ebc9eea690b1a3f04da4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fa5404b0_a3a6ebc9","updated":"2026-01-12 18:24:57.000000000","message":"Noticed one small drop in behaviors asserted -- but maybe it\u0027s sufficiently covered elsewhere?","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"d98962e8c0096c597b3feeeeebb6b716209c3b74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c9451699_f9e25159","updated":"2026-01-12 00:45:02.000000000","message":"Only 2 probe tests needed to be fixed, that seems better then I expected. The commit message seems more of a blanket statement over probetests.. On the fence, it would mention which tests it fixed seeing as there are only 2... on the other hand there is more then 1 fixed so it is fixing probe tests to do better timestamp handling.\n\nAlso its just tests. So meh, good enough 😊","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a47a2b46c08c0361533ebc9eea690b1a3f04da4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"728a932c_199293c9","in_reply_to":"059df36e_32bb57ad","updated":"2026-01-12 18:24:57.000000000","message":"IMHO, I wouldn\u0027t worry about it -- if someone\u0027s curious, they can always do a `git show` after reading the message.","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"280345341d32880fe0588b79066ad5f70313af33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"059df36e_32bb57ad","in_reply_to":"c9451699_f9e25159","updated":"2026-01-12 12:59:13.000000000","message":"@Matt did you want me to change the commit message, if so in what way?\n\nI can\u0027t list the individual test modules on the subject line - it\u0027d be too long. Ad given how constrained the patch is it didn\u0027t seem necessary to enumerate the modules in the body of the commit message...but I could.","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"fdd1540e7209f6d070e6a2be257675fa2f9cefcf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"63731d63_ab5d69a0","updated":"2026-01-14 06:07:13.000000000","message":"Lets get this one merged","commit_id":"db13f7116e09f894eafa08c1082a19f69e3a9ddd"}],"test/probe/test_container_failures.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a47a2b46c08c0361533ebc9eea690b1a3f04da4a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        # Post to only one replica of container1 at least 1 second after the"},{"line_number":98,"context_line":"        # put (to reveal any unexpected change in Last-Modified which is"},{"line_number":99,"context_line":"        # rounded to seconds)"},{"line_number":100,"context_line":"        time.sleep(put_time + 1 - time.time())"},{"line_number":101,"context_line":"        post_hdrs \u003d {\u0027x-container-meta-foo\u0027: \u0027bar\u0027,"},{"line_number":102,"context_line":"                     \u0027x-backend-no-timestamp-update\u0027: \u0027true\u0027}"},{"line_number":103,"context_line":"        direct_client.direct_post_container("}],"source_content_type":"text/x-python","patch_set":2,"id":"a55ea061_7204cd63","line":100,"updated":"2026-01-12 18:24:57.000000000","message":"I guess the idea is to sleep less than one second to the extent we can? Hope we don\u0027t get a *really* slow CI node, though:\n```\n\u003e\u003e\u003e time.sleep(-1)\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nValueError: sleep length must be non-negative\n```\nProbably not the only test where we\u0027d start seeing issues, though...","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ac89a4df7a20bb42e35315776109e553f3c443d6","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        # Post to only one replica of container1 at least 1 second after the"},{"line_number":98,"context_line":"        # put (to reveal any unexpected change in Last-Modified which is"},{"line_number":99,"context_line":"        # rounded to seconds)"},{"line_number":100,"context_line":"        time.sleep(put_time + 1 - time.time())"},{"line_number":101,"context_line":"        post_hdrs \u003d {\u0027x-container-meta-foo\u0027: \u0027bar\u0027,"},{"line_number":102,"context_line":"                     \u0027x-backend-no-timestamp-update\u0027: \u0027true\u0027}"},{"line_number":103,"context_line":"        direct_client.direct_post_container("}],"source_content_type":"text/x-python","patch_set":2,"id":"b7920667_c9cf70f6","line":100,"in_reply_to":"a55ea061_7204cd63","updated":"2026-01-13 14:16:58.000000000","message":"I think the idea is to sleep at least 1 second. IDK why it doesn\u0027t just sleep(1) - looks like it\u0027s trying to optimise by accounting for time elapsed since the PUT, but that\u0027s probably not significant.","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"}],"test/probe/test_object_expirer.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a47a2b46c08c0361533ebc9eea690b1a3f04da4a","unresolved":true,"context_lines":[{"line_number":76,"context_line":"        metadata \u003d self.client.get_object_metadata("},{"line_number":77,"context_line":"            self.account, self.container_name, self.object_name,"},{"line_number":78,"context_line":"            headers\u003d{\u0027X-Backend-Storage-Policy-Index\u0027: int(old_policy)})"},{"line_number":79,"context_line":"        create_timestamp \u003d Timestamp(metadata[\u0027x-backend-timestamp\u0027])"},{"line_number":80,"context_line":"        self.brain.start_primary_half()"},{"line_number":81,"context_line":"        # get the expiring object updates in their queue, while we have all"},{"line_number":82,"context_line":"        # the servers up"}],"source_content_type":"text/x-python","patch_set":2,"id":"234ef3d5_5f952817","line":79,"updated":"2026-01-12 18:24:57.000000000","message":"Should we maybe include an assertion like\n```\nself.assertEqual(\n    Timestamp(metadata[\u0027x-timestamp\u0027]).normal,\n    Timestamp(metadata[\u0027x-backend-timestamp\u0027]).normal)\n\n```\n? Or do we figure there ought to be enough coverage of that sort of thing in unit tests?\n\nOtherwise, yeah, if we\u0027re checking against `x-backend-timestamp` later, we should be snap-shotting `x-backend-timestamp` now.","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ac89a4df7a20bb42e35315776109e553f3c443d6","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        metadata \u003d self.client.get_object_metadata("},{"line_number":77,"context_line":"            self.account, self.container_name, self.object_name,"},{"line_number":78,"context_line":"            headers\u003d{\u0027X-Backend-Storage-Policy-Index\u0027: int(old_policy)})"},{"line_number":79,"context_line":"        create_timestamp \u003d Timestamp(metadata[\u0027x-backend-timestamp\u0027])"},{"line_number":80,"context_line":"        self.brain.start_primary_half()"},{"line_number":81,"context_line":"        # get the expiring object updates in their queue, while we have all"},{"line_number":82,"context_line":"        # the servers up"}],"source_content_type":"text/x-python","patch_set":2,"id":"8f81535b_0139c2c4","line":79,"in_reply_to":"234ef3d5_5f952817","updated":"2026-01-13 14:16:58.000000000","message":"Done","commit_id":"78122f935b92fae940d73948882c4ad4fc76d7ca"}]}
