)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e37916d11d9a3168116ae4a8f1015989d6e554ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a0ff4eee_502b7d92","updated":"2026-02-27 21:41:53.000000000","message":"timestamp jitter works great!","commit_id":"166e4badc266fe9d698c7df71cc9dc572e0199b3"}],"test/probe/test_timestamp_collision.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e37916d11d9a3168116ae4a8f1015989d6e554ff","unresolved":true,"context_lines":[{"line_number":256,"context_line":"        with mock.patch(\u0027time.time\u0027, return_value\u003dnow):"},{"line_number":257,"context_line":"            ts1 \u003d Timestamp.now()"},{"line_number":258,"context_line":"            ts2 \u003d Timestamp.now()"},{"line_number":259,"context_line":"        self.assertEqual(ts1.normal, ts2.normal)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        original_transfer_data \u003d ECObjectController._transfer_data"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1631a14d_6c032678","line":259,"updated":"2026-02-27 21:41:53.000000000","message":"this is the idea for a \"jitter saves the day collision\" - on *master* the internal form of both of these timestamps would be equal!","commit_id":"166e4badc266fe9d698c7df71cc9dc572e0199b3"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e37916d11d9a3168116ae4a8f1015989d6e554ff","unresolved":true,"context_lines":[{"line_number":318,"context_line":"        df2node \u003d self.map_data_file_to_node()"},{"line_number":319,"context_line":"        self.assertEqual(self.policy.ec_n_unique_fragments, len(df2node))"},{"line_number":320,"context_line":"        # nothing is durable"},{"line_number":321,"context_line":"        self.assertEqual(0, len(self._collect_durable_files(df2node)))"},{"line_number":322,"context_line":"        # both responses were errors"},{"line_number":323,"context_line":"        self.assertEqual([503, 503], [r.status_int for r in results])"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"85c662e1_79890b82","line":321,"updated":"2026-02-27 21:41:53.000000000","message":"If I cherry-pick \n```\n2c928272ee3cf4fe70b51c97b0ea0cc92441cb44\n4713725f37e090c9ea96a7f4dd2707cacb72b9f6\n```\n... this fails right here:\n\n```\n        # nothing is durable\n\u003e       self.assertEqual(0, len(self._collect_durable_files(df2node)))\nE       AssertionError: 0 !\u003d 6\n\nswift/test/probe/test_timestamp_collision.py:321: AssertionError\n```\n\nb/c both requests complete and are fully durable b/c there was NO linkat collision!\n\n```\n(Pdb) self._collect_durable_files(df2node)\n[\u0027/srv/node3/sdb7/objects-1/960/889/f02df5ca8360360525554fbee37a1889/1772227909.99925_2a1118bfa8000000#0#d.data\u0027, \u0027/srv/node2/sdb2/objects-1/960/889/f02df5ca8360360525554fbee37a1889/1772227909.99925_2a1118bfa8000000#1#d.data\u0027, \u0027/srv/node4/sdb4/objects-1/960/889/f02df5ca8360360525554fbee37a1889/1772227909.99925_2a1118bfa8000000#2#d.data\u0027, \u0027/srv/node1/sdb1/objects-1/960/889/f02df5ca8360360525554fbee37a1889/1772227909.99925_2a1118bfa8000000#3#d.data\u0027, \u0027/srv/node3/sdb3/objects-1/960/889/f02df5ca8360360525554fbee37a1889/1772227909.99925_2a1118bfa8000000#4#d.data\u0027, \u0027/srv/node2/sdb6/objects-1/960/889/f02df5ca8360360525554fbee37a1889/1772227909.99925_2a1118bfa8000000#5#d.data\u0027]\n(Pdb) !results\n[None, None]\n```\n\nand a clear ordering winner from the jitter timestamps.\n\nSo I think we can maybe merge these tests basically as-is (true/exact timestamp collision behavior) and have a different test that shows \"even with interleaved data streams having unique timestamps makes it collision free\"","commit_id":"166e4badc266fe9d698c7df71cc9dc572e0199b3"}]}
