diff options
author | Dmitry Tantsur <dtantsur@protonmail.com> | 2021-05-07 10:38:16 +0200 |
---|---|---|
committer | Dmitry Tantsur <dtantsur@protonmail.com> | 2021-05-07 19:06:57 +0200 |
commit | 6787142617e93dabdbdc73eecbf9fdc0b6ec2e29 (patch) | |
tree | e1ffc68068b94a4ede910885eb82c0ed3f363296 /releasenotes | |
parent | e88436688de3b05fcee9fd7cf4fe527ec4ecb678 (diff) | |
download | ironic-6787142617e93dabdbdc73eecbf9fdc0b6ec2e29.tar.gz |
Fix deployment when executing a command fails after the command starts
If the agent accepts a command, but is unable to reply to Ironic (which
sporadically happens before of the eventlet's TLS implementation), we
currently retry the request and fail because the command is already
executing. Ironic now detects this situation by checking the list of
executing commands after receiving a connection error. If the requested
command is last one, we assume that the command request succeeded.
Ideally, we should pass a request ID to IPA and then compare it. Such
a change would affect the API contract between the agent and Ironic
and thus would not be backportable.
Change-Id: I2ea21c9ec440fa7ddf8578cf7b34d6d0ebbb5dc8
(cherry picked from commit abfe383cc32d63dd3df2b90f0feace08d73b8364)
Diffstat (limited to 'releasenotes')
-rw-r--r-- | releasenotes/notes/agent-last-command-4ec6967c995ba84a.yaml | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/releasenotes/notes/agent-last-command-4ec6967c995ba84a.yaml b/releasenotes/notes/agent-last-command-4ec6967c995ba84a.yaml new file mode 100644 index 000000000..1ab3a4846 --- /dev/null +++ b/releasenotes/notes/agent-last-command-4ec6967c995ba84a.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + If the agent accepts a command, but is unable to reply to Ironic (which + sporadically happens before of the eventlet's TLS implementation), we + currently retry the request and fail because the command is already + executing. Ironic now detects this situation by checking the list of + executing commands after receiving a connection error. If the requested + command is the last one, we assume that the command request succeeded. |