)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"change_message_id":"fea7ab37ecc73c7bfc2087f23dfd231736ec68ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0172df76_ca7d9da8","updated":"2026-05-28 13:22:02.000000000","message":"This implementation looks solid. I left a few comments about improving documentation and unit test coverage, but apart from that it looks good to me. I particularly liked that is a minimal and focused change.\n\nI tested this in a SAIO machine setting USE_EVENTLET\u003d1, performed normal swift operations and monitored the logs. Everything worked just fine, no concerns.","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"55df9d0c359e6bae19c8f3874d8625d51e1e4071","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"5a494edc_bc52c72d","updated":"2026-08-28 13:03:43.000000000","message":"Self-approving on feature branch after discussing within the core reviewers team.","commit_id":"1a7773af84814120572ea69e62afab85805698a6"}],"swift/common/concurrency.py":[{"author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"change_message_id":"fea7ab37ecc73c7bfc2087f23dfd231736ec68ca","unresolved":true,"context_lines":[{"line_number":387,"context_line":"                raise StopIteration()"},{"line_number":388,"context_line":"            return self._futures.popleft().result()"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def trampoline(fd, read\u003dNone, write\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":391,"context_line":"        rlist \u003d [fd] if read else []"},{"line_number":392,"context_line":"        wlist \u003d [fd] if write else []"},{"line_number":393,"context_line":"        select.select(rlist, wlist, [fd], timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"cc80f893_b29dde1a","line":390,"updated":"2026-05-28 13:22:02.000000000","message":"How do you feel about adding unit test for threading-mode trampoline implementation?","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"},{"author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"change_message_id":"fea7ab37ecc73c7bfc2087f23dfd231736ec68ca","unresolved":true,"context_lines":[{"line_number":387,"context_line":"                raise StopIteration()"},{"line_number":388,"context_line":"            return self._futures.popleft().result()"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def trampoline(fd, read\u003dNone, write\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":391,"context_line":"        rlist \u003d [fd] if read else []"},{"line_number":392,"context_line":"        wlist \u003d [fd] if write else []"},{"line_number":393,"context_line":"        select.select(rlist, wlist, [fd], timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5327dd03_be3efb46","line":390,"updated":"2026-05-28 13:22:02.000000000","message":"Suggestion: add a docstring to improve documentation","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0efe79d06d3a5d9fe5da633b660a21ab425103bf","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                raise StopIteration()"},{"line_number":388,"context_line":"            return self._futures.popleft().result()"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def trampoline(fd, read\u003dNone, write\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":391,"context_line":"        rlist \u003d [fd] if read else []"},{"line_number":392,"context_line":"        wlist \u003d [fd] if write else []"},{"line_number":393,"context_line":"        select.select(rlist, wlist, [fd], timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7652cf2e_f325de8b","line":390,"in_reply_to":"5327dd03_be3efb46","updated":"2026-08-21 08:52:07.000000000","message":"Done in 1001762: Address remaining review comments on the eventlet-removal series | https://review.opendev.org/c/openstack/swift/+/1001762","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0efe79d06d3a5d9fe5da633b660a21ab425103bf","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                raise StopIteration()"},{"line_number":388,"context_line":"            return self._futures.popleft().result()"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def trampoline(fd, read\u003dNone, write\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":391,"context_line":"        rlist \u003d [fd] if read else []"},{"line_number":392,"context_line":"        wlist \u003d [fd] if write else []"},{"line_number":393,"context_line":"        select.select(rlist, wlist, [fd], timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"df9af77c_3c68be45","line":390,"in_reply_to":"cc80f893_b29dde1a","updated":"2026-08-21 08:52:07.000000000","message":"Done in 1001762: Address remaining review comments on the eventlet-removal series | https://review.opendev.org/c/openstack/swift/+/1001762","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"},{"author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"change_message_id":"fea7ab37ecc73c7bfc2087f23dfd231736ec68ca","unresolved":true,"context_lines":[{"line_number":388,"context_line":"            return self._futures.popleft().result()"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def trampoline(fd, read\u003dNone, write\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":391,"context_line":"        rlist \u003d [fd] if read else []"},{"line_number":392,"context_line":"        wlist \u003d [fd] if write else []"},{"line_number":393,"context_line":"        select.select(rlist, wlist, [fd], timeout)"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bb1b2f81_51c91638","line":391,"updated":"2026-05-28 13:22:02.000000000","message":"Suggestion: following the fail-fast principle, I would suggest to add an extra validation here.\n\n```\nif not read and not write:\n    raise ValueError(\"trampoline() requires read\u003dTrue or write\u003dTrue\")\n```","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0efe79d06d3a5d9fe5da633b660a21ab425103bf","unresolved":false,"context_lines":[{"line_number":388,"context_line":"            return self._futures.popleft().result()"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def trampoline(fd, read\u003dNone, write\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":391,"context_line":"        rlist \u003d [fd] if read else []"},{"line_number":392,"context_line":"        wlist \u003d [fd] if write else []"},{"line_number":393,"context_line":"        select.select(rlist, wlist, [fd], timeout)"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"f449968c_20784c22","line":391,"in_reply_to":"bb1b2f81_51c91638","updated":"2026-08-21 08:52:07.000000000","message":"Done in 1001762: Address remaining review comments on the eventlet-removal series | https://review.opendev.org/c/openstack/swift/+/1001762","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"}],"swift/common/utils/logs.py":[{"author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"change_message_id":"fea7ab37ecc73c7bfc2087f23dfd231736ec68ca","unresolved":true,"context_lines":[{"line_number":134,"context_line":"                # Tell eventlet to suspend the current greenthread until"},{"line_number":135,"context_line":"                # self.rfd becomes readable. This will happen when someone"},{"line_number":136,"context_line":"                # else writes to self.wfd."},{"line_number":137,"context_line":"                # In threading mode this simply sleeps shortly, allowing"},{"line_number":138,"context_line":"                # other threads to continue in the meantime"},{"line_number":139,"context_line":"                trampoline(self.rfd, read\u003dTrue)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"61855fac_fcbbc63f","line":137,"updated":"2026-05-28 13:22:02.000000000","message":"Suggestion: I worry that \"sleeps shortly\" might be a bit misleading since it actually blocks indefinitely until fd is ready. My suggestion would be just improve the use of \"sleeps shortly\" for better documentation.","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0efe79d06d3a5d9fe5da633b660a21ab425103bf","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                # Tell eventlet to suspend the current greenthread until"},{"line_number":135,"context_line":"                # self.rfd becomes readable. This will happen when someone"},{"line_number":136,"context_line":"                # else writes to self.wfd."},{"line_number":137,"context_line":"                # In threading mode this simply sleeps shortly, allowing"},{"line_number":138,"context_line":"                # other threads to continue in the meantime"},{"line_number":139,"context_line":"                trampoline(self.rfd, read\u003dTrue)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"6123d2dc_f9c60434","line":137,"in_reply_to":"61855fac_fcbbc63f","updated":"2026-08-21 08:52:07.000000000","message":"Done in 1001762: Address remaining review comments on the eventlet-removal series | https://review.opendev.org/c/openstack/swift/+/1001762","commit_id":"39f10b00b644813613f839f82a8694e6471d0c95"}]}
