I think this might have been bad triage of the issue. The os-detach API in cinder is synchronous, the cinder-api service does a synchronous rpc call to cinder-volume to detach the volume and change the status to available:
I believe the problem in Tempest for TestVolumeBootPattern is that the volume has snapshots when tearing down which makes the volume detach in nova fail because the volume snapshots aren't deleted yet.
I think this might have been bad triage of the issue. The os-detach API in cinder is synchronous, the cinder-api service does a synchronous rpc call to cinder-volume to detach the volume and change the status to available:
https:/ /github. com/openstack/ cinder/ blob/cbee6066e4 ff92addf3452114 f6f6be355a6ac40 /cinder/ volume/ rpcapi. py#L217
https:/ /github. com/openstack/ cinder/ blob/cbee6066e4 ff92addf3452114 f6f6be355a6ac40 /cinder/ volume/ manager. py#L1363
I believe the problem in Tempest for TestVolumeBootP attern is that the volume has snapshots when tearing down which makes the volume detach in nova fail because the volume snapshots aren't deleted yet.