)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"e1f76beebd678b992b220c0605e2a6dc95247e3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a2c50b07_4d54b896","updated":"2023-11-24 07:02:38.000000000","message":"Hi cinder cores,\n\nCould you please provide your feedback here.","commit_id":"e2ac0e21352b030c3862a535f9a95b4157293582"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"d5bad722b512f48ded6211cb1b063dbadd3d01f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c4a97e01_c21b1d86","updated":"2024-01-10 14:33:01.000000000","message":"Thank you both for requesting Cinder\u0027s feedback.\n\nThis doesn\u0027t look like a Cinder bug. As stated in the logged error, a volume cannot be \"reserved\" if it\u0027s not in \"available\", \"in-use\", or \"downloading\" state.\n\nWhen an attachment is created with no connector it is effectively a reserve operation.  This is documented in the cinder [1] and nova code [2], though I see that it hasn\u0027t been documented in the API reference [3].\n\nRegarding the approach, it sounds good, although I\u0027m not sure about the actual sleeping times or the status code it\u0027s checking, as mentioned in the inline comment.\n\n\n[1]: https://github.com/openstack/cinder/blob/55b7aa9142c8d3f7ff5e1286e3a430050c1bdaf1/cinder/api/v3/attachments.py#L116-L118\n[2]: https://github.com/openstack/nova/blob/39f560d6730f2b212506b7d754645c288d13f1cd/nova/volume/cinder.py#L780\n[3]: https://docs.openstack.org/api-ref/block-storage/v3/#create-attachment","commit_id":"e2ac0e21352b030c3862a535f9a95b4157293582"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a611c4567ce6c9533f91cf312965a4e5e36f8cd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b1c52480_c859a0d9","updated":"2023-03-23 14:11:46.000000000","message":"this should be discussed with cidner because this feels like a cinder bug to me as well","commit_id":"e2ac0e21352b030c3862a535f9a95b4157293582"}],"nova/volume/cinder.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"d5bad722b512f48ded6211cb1b063dbadd3d01f2","unresolved":true,"context_lines":[{"line_number":766,"context_line":"    @retrying.retry(stop_max_attempt_number\u003d5,"},{"line_number":767,"context_line":"                    retry_on_exception\u003dlambda e:"},{"line_number":768,"context_line":"                    (isinstance(e, cinder_exception.ClientException) and"},{"line_number":769,"context_line":"                     e.code \u003d\u003d 500),"},{"line_number":770,"context_line":"                    wait_exponential_multiplier\u003d1000,"},{"line_number":771,"context_line":"                    wait_exponential_max\u003d10000)"},{"line_number":772,"context_line":"    def attachment_create(self, context, volume_id, instance_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ea2adcba_94bdd3ea","line":769,"range":{"start_line":769,"start_character":31,"end_line":769,"end_character":34},"updated":"2024-01-10 14:33:01.000000000","message":"-1: Returned error is HTTP 400, why are we checking against 500 here?","commit_id":"e2ac0e21352b030c3862a535f9a95b4157293582"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"6779759557115635ab08f138cbde681eadfa09f3","unresolved":false,"context_lines":[{"line_number":766,"context_line":"    @retrying.retry(stop_max_attempt_number\u003d5,"},{"line_number":767,"context_line":"                    retry_on_exception\u003dlambda e:"},{"line_number":768,"context_line":"                    (isinstance(e, cinder_exception.ClientException) and"},{"line_number":769,"context_line":"                     e.code \u003d\u003d 500),"},{"line_number":770,"context_line":"                    wait_exponential_multiplier\u003d1000,"},{"line_number":771,"context_line":"                    wait_exponential_max\u003d10000)"},{"line_number":772,"context_line":"    def attachment_create(self, context, volume_id, instance_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"edf15ba9_2affd482","line":769,"range":{"start_line":769,"start_character":31,"end_line":769,"end_character":34},"in_reply_to":"ea2adcba_94bdd3ea","updated":"2024-04-26 10:12:35.000000000","message":"Done","commit_id":"e2ac0e21352b030c3862a535f9a95b4157293582"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"d5bad722b512f48ded6211cb1b063dbadd3d01f2","unresolved":true,"context_lines":[{"line_number":768,"context_line":"                    (isinstance(e, cinder_exception.ClientException) and"},{"line_number":769,"context_line":"                     e.code \u003d\u003d 500),"},{"line_number":770,"context_line":"                    wait_exponential_multiplier\u003d1000,"},{"line_number":771,"context_line":"                    wait_exponential_max\u003d10000)"},{"line_number":772,"context_line":"    def attachment_create(self, context, volume_id, instance_id,"},{"line_number":773,"context_line":"                          connector\u003dNone, mountpoint\u003dNone):"},{"line_number":774,"context_line":"        \"\"\"Create a volume attachment. This requires microversion \u003e\u003d 3.44."}],"source_content_type":"text/x-python","patch_set":2,"id":"f2db9c63_24e84957","line":771,"updated":"2024-01-10 14:33:01.000000000","message":"?: Isn\u0027t this insufficient wait time?  An attach operation can take close to a minute in extreme situations.","commit_id":"e2ac0e21352b030c3862a535f9a95b4157293582"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"6779759557115635ab08f138cbde681eadfa09f3","unresolved":false,"context_lines":[{"line_number":768,"context_line":"                    (isinstance(e, cinder_exception.ClientException) and"},{"line_number":769,"context_line":"                     e.code \u003d\u003d 500),"},{"line_number":770,"context_line":"                    wait_exponential_multiplier\u003d1000,"},{"line_number":771,"context_line":"                    wait_exponential_max\u003d10000)"},{"line_number":772,"context_line":"    def attachment_create(self, context, volume_id, instance_id,"},{"line_number":773,"context_line":"                          connector\u003dNone, mountpoint\u003dNone):"},{"line_number":774,"context_line":"        \"\"\"Create a volume attachment. This requires microversion \u003e\u003d 3.44."}],"source_content_type":"text/x-python","patch_set":2,"id":"7cde875f_95d32684","line":771,"in_reply_to":"f2db9c63_24e84957","updated":"2024-04-26 10:12:35.000000000","message":"Done","commit_id":"e2ac0e21352b030c3862a535f9a95b4157293582"}]}
