)]}'
{"id":"openstack%2Fnova~982676","triplet_id":"openstack%2Fnova~master~I866e6fa935d4981f748375fff5168c9a104ea18b","project":"openstack/nova","branch":"master","topic":"bug/2111320","attention_set":{"16207":{"account":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"last_update":"2026-03-30 18:18:36.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I866e6fa935d4981f748375fff5168c9a104ea18b","subject":"Filter soft-deleted services from Instance.services ORM relationship","status":"NEW","created":"2026-03-30 15:55:00.000000000","updated":"2026-04-17 16:16:17.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"8549a9e00f93745ae75ef5f588c9851adc0bbbab","_number":982676,"virtual_id_number":982676,"owner":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-17 16:07:04.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-30 16:34:12.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-03-30 18:18:26.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-03-30 18:18:36.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"}],"messages":[{"id":"e6f6f3e8880b3dd43bde9ff267d3c29e61894004","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"date":"2026-03-30 15:55:00.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"dfd4e2c502689fb80715fdebd7495658c67c2c83","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-03-30 16:34:12.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I866e6fa935d4981f748375fff5168c9a104ea18b .","accounts_in_message":[],"_revision_number":1},{"id":"3ade774289d09d33364ca30443ce2c1310daa2b6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-30 18:18:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1a665face9a249dc97a7869894a4821e\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e973212e21124aef9982a99e34571aa7 : SUCCESS in 58m 17s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/0eb194e9c7fc44069d5514746d82185d : SUCCESS in 2h 06m 54s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/163373259074477e9d2f858462152a7a : SUCCESS in 40m 41s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d1a611c715d04064928c6979661f0e73 : SUCCESS in 52m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/879af918cf754db887858a6ba14b6047 : SUCCESS in 8m 24s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/1b9c7d13cf7f4f19b14316a420bc820f : SUCCESS in 19m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9435f5b0ee944114b4ef07600daa7d04 : SUCCESS in 15m 12s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e311486fb8864bef97f241270d7ead3a : SUCCESS in 23m 17s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0b7a8606995445c1bf69423e5bd22949 : SUCCESS in 7m 33s\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/0883d181b5c74fb9929bb00b65c96c09 : SUCCESS in 1h 35m 26s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/fd23d6d62fef452cb950b2fe4d8ef902 : SUCCESS in 58m 59s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/af99aec918bc4a78be89239d1d2b5b10 : SUCCESS in 56m 14s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/d9e2beaf447843f4ac6badbd39704866 : SUCCESS in 28m 31s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/4cc99dbe9dd24b6eb7b6a623a236769e : SUCCESS in 1h 25m 24s\n- nova-next https://zuul.opendev.org/t/openstack/build/d28a258101a94f9aac72c550c3998d97 : SUCCESS in 2h 13m 07s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/9172a0c391c64515b7c5712e1759795c : SUCCESS in 55m 05s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/f5f93c12118948d1993e7a2a3de561be : SUCCESS in 5m 37s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/03bfc13223b94beabf263fad8b61548c : SUCCESS in 30m 04s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/1f3e17ab72e84da7b3ce86a646146e8d : SUCCESS in 27m 19s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/a0af0c36e7af4ec681c76f0134cc7245 : SUCCESS in 1h 14m 48s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/92b0f7c8a9774096b7bcc050127e10ba : SUCCESS in 39m 59s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/ddd93b2dffaf4aa3ac66870343888a22 : SUCCESS in 20m 22s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/d346b37da2d34a0fb0cee7f15bbac4c5 : SUCCESS in 35m 02s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/8193db088e4c4b68800036d4921f8bca : SUCCESS in 16m 58s","accounts_in_message":[],"_revision_number":1},{"id":"3854d6ce52b8f27b86b7ebfe8dc7a75ef848c7fe","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-03-30 18:27:41.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":1},{"id":"0cb8c39a1295c60f5c0245df47e1b24d186d7238","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-30 20:21:50.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d2fdfbb9c43a42c5b7f9826560f2d5de\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/f20424d4c8ba496190f478f047586d4f : SUCCESS in 23m 33s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/96f8411c3bee49f0a8419451ff3cd706 : SUCCESS in 12m 56s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/00a02c03a1b8418b8168bc64c666dbe1 : SUCCESS in 25m 01s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"1b50ecb30d9d8adcdabc0eef9c152dabc076b076","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"date":"2026-04-17 13:50:14.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"397ebe0205ce23045f0f187d3e7622888d6a4f80","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-04-17 14:29:24.000000000","message":"Patch Set 2:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I866e6fa935d4981f748375fff5168c9a104ea18b .","accounts_in_message":[],"_revision_number":2},{"id":"be6b2b555bf21b4f51721beffcf244594da95912","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-17 14:54:30.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/79776c2114fd4c0c984c628da37febb6\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/2c6145634e7546528f89c9481938df95 : SUCCESS in 17m 00s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/8d8aac0920c94504b6ec9093623a7e03 : SUCCESS in 12m 29s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/f1361b6798194070a294b652f81e80ef : SUCCESS in 20m 48s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"23d943735d725b506a3163217b5b551ecdd10eaf","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-17 16:07:04.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7eb7be0b245a4f4c960bfdbfaf0b1fcf\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4e3f95802710485eb14a8eca44839b24 : SUCCESS in 1h 04m 16s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/ebee3bf00496416d8a168259c0687bb3 : SUCCESS in 2h 01m 32s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b9336865dd4d43cf83f608f6c8858df1 : SUCCESS in 1h 07m 11s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9cdf8af0848d47c19258816950987a64 : SUCCESS in 1h 18m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e03610d828af406a93313fec23d631fa : SUCCESS in 8m 11s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/01e5fc5d89874ae7b24ae0bdc063908f : SUCCESS in 14m 08s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/bc6b3a1d3e334dd8b16690079c98f108 : SUCCESS in 11m 28s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5222658d898949fe9d35782909d1990a : SUCCESS in 13m 22s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/89c6ebe7f9d04e7c97f9aa503b53ff50 : SUCCESS in 8m 03s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4732d1e063dd4bf7ba40e28faec75ef2 : SUCCESS in 36m 08s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/a477319ac46548cda6f4861c8fe1f665 : SUCCESS in 53m 12s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/98eff36aae224c49aabaeacfdb4c15f5 : SUCCESS in 1h 52m 03s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/9a5f1e823b9747eeb1b54903f63fafdf : SUCCESS in 59m 20s\n- nova-vtpm https://zuul.opendev.org/t/openstack/build/1da04889eba04e6c975828a8c70b351d : SUCCESS in 36m 49s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/2137c9dff2cf4e64814353698486c1c6 : SUCCESS in 1h 06m 39s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/9b402a4198f949fb9d4ed5d7e14896b9 : SUCCESS in 50m 27s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/e1dbb9e02f9449ec9c930be881431f69 : SUCCESS in 2h 08m 26s\n- nova-next https://zuul.opendev.org/t/openstack/build/4ad8792c2862423e94c39ee27ff6d838 : SUCCESS in 1h 29m 03s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/71edb53b9d3445a0bac924da61fa62ab : SUCCESS in 36m 50s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/42519f02966e41b1ae6902ead0393d6e : SUCCESS in 5m 45s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/0bc0b0555db6404b9d5271d331925bd6 : SUCCESS in 28m 45s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/3ac330d03c304f6a8e7896eefcc4868a : SUCCESS in 28m 34s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/3e40d4db859842618ac1f477e5a05f2a : SUCCESS in 1h 34m 06s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9640569de29d40429f2cbe76ec640e8c : SUCCESS in 30m 11s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/9d20c5be8362419ba5e7e483fdc23c0d : SUCCESS in 30m 58s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/10fd179bfe67495eb9f6f4271751f2d0 : SUCCESS in 33m 49s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/ec483432efc44c3f96a6b2661dcce184 : SUCCESS in 15m 54s","accounts_in_message":[],"_revision_number":2},{"id":"8549a9e00f93745ae75ef5f588c9851adc0bbbab","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-04-17 16:16:17.000000000","message":"Patch Set 2:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"83b97ae8bc65c8729b237d20ec9c48a2915819f7","revisions":{"c83f49e82d841b239f1ef376cb2deb54f1a534a1":{"kind":"REWORK","_number":1,"created":"2026-03-30 15:55:00.000000000","uploader":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"ref":"refs/changes/76/982676/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/76/982676/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/76/982676/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/76/982676/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/76/982676/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/76/982676/1"}}},"commit":{"parents":[{"commit":"77f128bb24b51671be36621bcac600d73b4ae0c0","subject":"Add reproducer for bug #2111320: soft-deleted services in Instance.services","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/77f128bb24b51671be36621bcac600d73b4ae0c0"}]}],"author":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-03-30 15:41:50.000000000","tz":120},"committer":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-03-30 15:54:18.000000000","tz":120},"subject":"Filter soft-deleted services from Instance.services ORM relationship","message":"Filter soft-deleted services from Instance.services ORM relationship\n\nThe Instance.services ORM relationship was missing a\nService.deleted \u003d\u003d 0 filter in the primaryjoin condition, causing\ninstance.services to include soft-deleted service rows alongside\nactive ones. When a compute host has been removed and re-added,\nthe stale service rows left behind could be picked up by\ncheck_instance_host(check_is_up\u003dTrue), leading to a spurious 409\nServiceUnavailable error on operations like volume detach or resize.\n\nAdd Service.deleted \u003d\u003d 0 to the primaryjoin on both sides of the\nrelationship (Instance.services and Service.instance).\n\nCloses-Bug: #2111320\nCloses-Bug: #2073365\n\nAssisted-By: Claude-Code opus 4.6\nChange-Id: I866e6fa935d4981f748375fff5168c9a104ea18b\nSigned-off-by: René Ribaud \u003crribaud@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c83f49e82d841b239f1ef376cb2deb54f1a534a1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c83f49e82d841b239f1ef376cb2deb54f1a534a1"}]},"branch":"refs/heads/master"},"83b97ae8bc65c8729b237d20ec9c48a2915819f7":{"kind":"REWORK","_number":2,"created":"2026-04-17 13:50:14.000000000","uploader":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"ref":"refs/changes/76/982676/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/76/982676/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/76/982676/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/76/982676/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/76/982676/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/76/982676/2"}}},"commit":{"parents":[{"commit":"7eb47edeaa40151af1fbcebc2e8da35c10fff05d","subject":"Add reproducer for bug #2111320: soft-deleted services in Instance.services","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/7eb47edeaa40151af1fbcebc2e8da35c10fff05d"}]}],"author":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-03-30 15:41:50.000000000","tz":120},"committer":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-04-17 13:49:35.000000000","tz":120},"subject":"Filter soft-deleted services from Instance.services ORM relationship","message":"Filter soft-deleted services from Instance.services ORM relationship\n\nThe Instance.services ORM relationship was missing a\nService.deleted \u003d\u003d 0 filter in the primaryjoin condition, causing\ninstance.services to include soft-deleted service rows alongside\nactive ones. When a compute host has been removed and re-added,\nthe stale service rows left behind could be picked up by\ncheck_instance_host(check_is_up\u003dTrue), leading to a spurious 409\nServiceUnavailable error on operations like volume detach or resize.\n\nAdd Service.deleted \u003d\u003d 0 to the primaryjoin on both sides of the\nrelationship (Instance.services and Service.instance).\n\nCloses-Bug: #2111320\nCloses-Bug: #2073365\n\nAssisted-By: Claude-Code opus 4.6\nChange-Id: I866e6fa935d4981f748375fff5168c9a104ea18b\nSigned-off-by: René Ribaud \u003crribaud@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/83b97ae8bc65c8729b237d20ec9c48a2915819f7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/83b97ae8bc65c8729b237d20ec9c48a2915819f7"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
