)]}'
{"nova/tests/functional/regressions/test_bug_2120927.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1f301eb19999e923aebeccbe82b2459a7b1c98ef","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    trigger an unshelve. If the unshelve is scheduled to a different"},{"line_number":39,"context_line":"    host and completes before step 3, the nil-out save overwrites"},{"line_number":40,"context_line":"    the host/node set by the unshelve, leaving an ACTIVE instance"},{"line_number":41,"context_line":"    with no host."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    In production, this race is possible because shelve_offload runs"},{"line_number":44,"context_line":"    on host A (holding a per-process lock) while unshelve runs on"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ae2f17c_f047773e","line":41,"updated":"2026-08-26 14:24:18.000000000","message":"yepp I concluded the same based on the code when triaged https://bugs.launchpad.net/nova/+bug/2163552 so I will make the two bug linked","commit_id":"d8508f12fd184da25c51fa421d087e3714cdd07e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"c42b246e936f2a38668e858ce5c0b8f15e20f117","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    trigger an unshelve. If the unshelve is scheduled to a different"},{"line_number":39,"context_line":"    host and completes before step 3, the nil-out save overwrites"},{"line_number":40,"context_line":"    the host/node set by the unshelve, leaving an ACTIVE instance"},{"line_number":41,"context_line":"    with no host."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    In production, this race is possible because shelve_offload runs"},{"line_number":44,"context_line":"    on host A (holding a per-process lock) while unshelve runs on"}],"source_content_type":"text/x-python","patch_set":1,"id":"b37a5c7f_895f36a4","line":41,"in_reply_to":"8ae2f17c_f047773e","updated":"2026-09-21 09:43:31.000000000","message":"Acknowledged","commit_id":"d8508f12fd184da25c51fa421d087e3714cdd07e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1f301eb19999e923aebeccbe82b2459a7b1c98ef","unresolved":true,"context_lines":[{"line_number":125,"context_line":"            # per-process lock, simulating the production scenario"},{"line_number":126,"context_line":"            # where shelve_offload and unshelve hold locks on"},{"line_number":127,"context_line":"            # different hosts."},{"line_number":128,"context_line":"            self.compute1.manager._shelve_offload_instance("},{"line_number":129,"context_line":"                ctx, instance, clean_shutdown\u003dFalse)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        server \u003d self.api.get_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"71f8cb1e_cb9b7978","line":128,"updated":"2026-08-26 14:24:18.000000000","message":"sorry this is too unrealistic. Can we murk with the lock instead and call a proper uhelve from the API?","commit_id":"d8508f12fd184da25c51fa421d087e3714cdd07e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"c42b246e936f2a38668e858ce5c0b8f15e20f117","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            # per-process lock, simulating the production scenario"},{"line_number":126,"context_line":"            # where shelve_offload and unshelve hold locks on"},{"line_number":127,"context_line":"            # different hosts."},{"line_number":128,"context_line":"            self.compute1.manager._shelve_offload_instance("},{"line_number":129,"context_line":"                ctx, instance, clean_shutdown\u003dFalse)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        server \u003d self.api.get_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"7948c796_7d37e0dc","line":128,"in_reply_to":"71f8cb1e_cb9b7978","updated":"2026-09-21 09:43:31.000000000","message":"Done","commit_id":"d8508f12fd184da25c51fa421d087e3714cdd07e"}]}
