)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"acf9352ef140a168d91a5fcc384e3e76f20d17c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"be723cbf_b929447f","updated":"2026-06-03 18:22:35.000000000","message":"this looks great!\n\nreverted test failure:\n\n```\nE           - [\u00271.2.3.4/device/partition ssync client disconnected\u0027]\nE           + [\u0027ssync client disconnected\u0027]\n```\n\non a vsaio:\n\n```\nvagrant@vsaio-1:~$ grep \"TIMEOUT in ssync.Receiver\" /var/log/syslog\n2026-06-03T18:18:47.944628+00:00 vsaio-1 object-server-6010: 127.0.0.1/sdb1/941 TIMEOUT in ssync.Receiver: 2.0 seconds: missing_check start\n2026-06-03T18:18:47.959179+00:00 vsaio-1 object-server-6020: 127.0.0.1/sdb2/941 TIMEOUT in ssync.Receiver: 2.0 seconds: missing_check start\n2026-06-03T18:18:50.076848+00:00 vsaio-1 object-server-6020: 127.0.0.1/sdb2/941 TIMEOUT in ssync.Receiver: 2.0 seconds: missing_check start\n2026-06-03T18:18:57.976814+00:00 vsaio-1 object-server-6040: 127.0.0.1/sdb8/941 TIMEOUT in ssync.Receiver: 2.0 seconds: missing_check start\n2026-06-03T18:18:57.984737+00:00 vsaio-1 object-server-6020: 127.0.0.1/sdb2/941 TIMEOUT in ssync.Receiver: 2.0 seconds: missing_check start\n2026-06-03T18:19:00.098910+00:00 vsaio-1 object-server-6020: 127.0.0.1/sdb2/941 TIMEOUT in ssync.Receiver: 2.0 seconds: missing_check start\n2026-06-03T18:19:07.992803+00:00 vsaio-1 object-server-6010: 127.0.0.1/sdb5/941 TIMEOUT in ssync.Receiver: 2.0 seconds: missing_check start\n```\n\n^ I added a sleep in my reconstructor:\n\n```\ndiff --git a/swift/obj/ssync_sender.py b/swift/obj/ssync_sender.py\nindex feb3c2337..9a9f31524 100644\n--- a/swift/obj/ssync_sender.py\n+++ b/swift/obj/ssync_sender.py\n@@ -288,6 +288,7 @@ class Sender(object):\n         Full documentation of this can be found at\n         :py:meth:`.Receiver.missing_check`.\n         \"\"\"\n+        sleep(10.0)\n         self.limited_by_max_objects \u003d False\n         available_map \u003d {}\n         send_map \u003d {}\n```\n\nand set client_timeout in `/etc/swift/object-server/server.conf-template`\n\n```\nvagrant@vsaio-1:~/swift$ swift-config /etc/swift/object-server/2.conf.d -s app:object-server 2\u003e /dev/null | grep timeout\nclient_timeout \u003d 2\n```","commit_id":"00e93a641af0f70a06a031613b8166a0108dfd4f"}],"swift/obj/ssync_receiver.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"acf9352ef140a168d91a5fcc384e3e76f20d17c1","unresolved":true,"context_lines":[{"line_number":360,"context_line":"        #     4bd654205a4217970a57a7c4802fed7ff2c8b770"},{"line_number":361,"context_line":"        self.request.environ[\u0027eventlet.minimum_write_chunk_size\u0027] \u003d 0"},{"line_number":362,"context_line":"        self.device, self.partition, self.policy \u003d \\"},{"line_number":363,"context_line":"            request_helpers.get_name_and_placement(self.request, 2, 2, False)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        self.frag_index \u003d None"},{"line_number":366,"context_line":"        if self.request.headers.get(\u0027X-Backend-Ssync-Frag-Index\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ed50116_7f79bd34","line":363,"updated":"2026-06-03 18:22:35.000000000","message":"oic, and we actually don\u0027t create the req_logger until *after* we\u0027ve called `initialize_request`","commit_id":"00e93a641af0f70a06a031613b8166a0108dfd4f"}],"test/unit/obj/test_ssync_receiver.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"acf9352ef140a168d91a5fcc384e3e76f20d17c1","unresolved":true,"context_lines":[{"line_number":119,"context_line":"        self.mock_receiver.request.remote_addr \u003d \u00271.2.3.4\u0027"},{"line_number":120,"context_line":"        self.mock_receiver.device \u003d \u0027sda1\u0027"},{"line_number":121,"context_line":"        self.mock_receiver.partition \u003d \u00271\u0027"},{"line_number":122,"context_line":"        self.mock_underlying \u003d mock.MagicMock()"},{"line_number":123,"context_line":"        self.logger \u003d ssync_receiver.SsyncAnnotatedLogger("},{"line_number":124,"context_line":"            self.mock_underlying, self.mock_receiver)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f3b4d0be_b7a1cc89","line":122,"updated":"2026-06-03 18:22:35.000000000","message":"the underlying *logger*","commit_id":"00e93a641af0f70a06a031613b8166a0108dfd4f"}]}
