-
Notifications
You must be signed in to change notification settings - Fork 14.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix waiting the base container when reading the logs of other containers #33092
Fix waiting the base container when reading the logs of other containers #33092
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me +1
|
||
# check that the base container is not included in the logs | ||
mock_fetch_log.assert_called_once_with( | ||
pod=pod, container_logs=["some_init_container"], follow_logs=True | ||
) | ||
# check that KPO waits for the base container to complete before proceeding to extract XCom | ||
mock_await_container_completion.assert_called_once_with(pod=pod, container_name="base") | ||
# check that we wait for the xcom sidecar to start before extracting XCom | ||
mock_await_xcom_sidecar.assert_called_once_with(pod=pod) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome work on the test cases!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tests fail :(
Most unit tests don't expect to call the method |
… containers (apache#33092)" This reverts commit d31c775.
…of other containers (apache#33092)" (apache#33125)" This reverts commit 4fbbdbc.
related: #31663
After supporting specifying the containers list to read logs from (#31663), we can configure the KPO to load the init containers logs, or even provide a wrong name by mistake. In these cases, the KPO will not wait for the base container termination, and if we set
do_xcom_push
to True, the xcom_sidecar container will be running too fast, and it will fail because the Xcom result is not ready yet.This PR calls the method
await_container_completion
regardless if we read the log or not, to make sure that we don't proceed to extract the Xcom result before checking if the bas container is finished.^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rst
or{issue_number}.significant.rst
, in newsfragments.