)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"eace96c4a1fdcea41190f3bc8b73fd68d4feae52","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b0620342_5ecde56a","updated":"2026-02-05 17:29:11.000000000","message":"Overall, this patch is great. I particularly appreciate how well the scenario and the commit message are explained.\nIt’s really good to have addressed this bug, as I agree it can likely happen quite often. Thanks for working on this.\n\nSince this patch relies on threading, I don’t think it conflicts with the ongoing Eventlet related work. I’m adding Gibi as a reviewer so he can confirm this assumption.\n\nI’ve added a small -1 for now, as I think we could avoid the time.sleep(0.3) to make the test more robust; see inline comments for details.","commit_id":"755dd04914ddc6261baaea1d0f040efdb3f877f7"},{"author":{"_account_id":35676,"name":"Max","email":"max.lamprecht@digits.schwarz","username":"lamprechtm"},"change_message_id":"c4cb8257487fe5561e849a23fa11449f0b89d894","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2f6bda66_fad01712","in_reply_to":"b0620342_5ecde56a","updated":"2026-02-26 19:49:22.000000000","message":"Acknowledged","commit_id":"755dd04914ddc6261baaea1d0f040efdb3f877f7"}],"nova/tests/functional/regressions/test_bug_2137366.py":[{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"eace96c4a1fdcea41190f3bc8b73fd68d4feae52","unresolved":true,"context_lines":[{"line_number":160,"context_line":"            if migration_thread:"},{"line_number":161,"context_line":"                migration_thread.join(timeout\u003d5)"},{"line_number":162,"context_line":"                # sleep to allow attachment delete processing"},{"line_number":163,"context_line":"                time.sleep(0.3)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # Verify no orphaned attachments remain via cinder fixture"},{"line_number":166,"context_line":"        final_attachments \u003d self.cinder.volume_to_attachment.get(volume_id, {})"}],"source_content_type":"text/x-python","patch_set":1,"id":"f6bb99bd_7be23797","line":163,"range":{"start_line":163,"start_character":16,"end_line":163,"end_character":31},"updated":"2026-02-05 17:29:11.000000000","message":"This is my only concern; I’m afraid it could make the test flaky.\n\nTo address this, I would suggest polling until there are no attachments left.\nOf course, in the reproducer case this would involve a timeout.\nThe timeout could be kept fairly short, since Cinder is mocked here and defined via a constant that can be easily adjusted.\n\nIn the fixed case, this should make the test more stable, as we would proceed to the following assertions as soon as the condition is met.","commit_id":"755dd04914ddc6261baaea1d0f040efdb3f877f7"},{"author":{"_account_id":35676,"name":"Max","email":"max.lamprecht@digits.schwarz","username":"lamprechtm"},"change_message_id":"c4cb8257487fe5561e849a23fa11449f0b89d894","unresolved":true,"context_lines":[{"line_number":160,"context_line":"            if migration_thread:"},{"line_number":161,"context_line":"                migration_thread.join(timeout\u003d5)"},{"line_number":162,"context_line":"                # sleep to allow attachment delete processing"},{"line_number":163,"context_line":"                time.sleep(0.3)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # Verify no orphaned attachments remain via cinder fixture"},{"line_number":166,"context_line":"        final_attachments \u003d self.cinder.volume_to_attachment.get(volume_id, {})"}],"source_content_type":"text/x-python","patch_set":1,"id":"d5c1ab63_9158c94b","line":163,"range":{"start_line":163,"start_character":16,"end_line":163,"end_character":31},"in_reply_to":"f6bb99bd_7be23797","updated":"2026-02-26 19:49:22.000000000","message":"implemented polling","commit_id":"755dd04914ddc6261baaea1d0f040efdb3f877f7"}]}
