[update] fix: stop control plane check during split variant post-services tests#3978
Conversation
|
Skipping CI for Draft Pull Request. |
c722046 to
c8c6dfb
Compare
|
New changes are detected. LGTM label has been removed. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
…tests In the split update variant, the continuous control plane check runs in the background creating and deleting VMs in a loop. When post-services tests (tobiko) execute between the services and system update phases, they discover transient VMs in BUILD state and fail with HTTP 409 conflicts. Stop the control plane check before running the post-services tests and restart it afterward so it continues monitoring during the system update phase. The ping test is left running since it only pings an existing VM and does not create new resources. Closes: OSPCIX-1381 Signed-off-by: Vito Castellano <vcastell@redhat.com>
c8c6dfb to
fa56392
Compare
| ansible.builtin.debug: | ||
| msg: >- | ||
| Control plane test reported failures during services update phase | ||
| (expected during service restarts): |
There was a problem hiding this comment.
What do you mean by that? Expected state is control plane test failures maximum of threshold(3 in total, 2 consecutive maximum).
Anything beyond that is not expected.| ansible.builtin.command: | | ||
| {{ cifmw_update_artifacts_basedir }}/control_plane_test_stop.sh | ||
| register: _cifmw_update_cp_stop_result | ||
| failed_when: false |
There was a problem hiding this comment.
I like this approach of continuing update regardless of failure as we can test more of steps. Next reporting task is fine to me with small remark that we need to be very careful when validating overall job result. Not to miss the cp failure on services update
Context
This is a targeted fix to unblock the job which is currently failing due to a race condition between the continuous control plane check and tobiko tests.
A more comprehensive solution, such as adding a pause/resume mechanism to the control plane check scripts or reworking how background tests interact with the split update variant, could be evaluated as a follow-up.
Problem
Some jobs fails because tobiko tests encounter VMs in
BUILDstate during the post-services test phase.The root cause is a race condition: the continuous control plane check (
cifmw_update_control_plane_check) runsworkload_launch.shin an infinite loop, creating and tearing down VMs every few seconds.In the split variant, tests run between the services update and system update phases while this loop is still active.
Tobiko lists all servers, finds a VM mid-creation, and fails:
novaclient.exceptions.Conflict: Cannot 'reboot' instance ... while it is in vm_state building (HTTP 409)Proposed solution
Stop the control plane check before running the post-services tests in
update_variant_split.yml, then restart it so it monitors the system update phase as well.The ping test is not stopped because it only runs
pingagainst an existing VM and does not create any new OpenStack resources.Each control plane check run produces PID-scoped log files (
control-plane-test-<PID>.log), so the stop/restart cycle creates two separate runs with independent validation, no log collision.Closes: OSPCIX-1381
Assisted-By: Cursor