Skip to content

Conversation

@hussein-awala
Copy link
Member

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.

@boring-cyborg boring-cyborg bot added area:providers provider:cncf-kubernetes Kubernetes (k8s) provider related issues labels Aug 4, 2023
Copy link
Contributor

@amoghrajesh amoghrajesh left a 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

Comment on lines +1265 to +1274

# 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)

Copy link
Contributor

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!

Copy link
Contributor

@eladkal eladkal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests fail :(

@hussein-awala
Copy link
Member Author

Tests fail :(

Most unit tests don't expect to call the method await_container_completion; I just added a condition, hoping this will fix the unit tests.

@hussein-awala hussein-awala merged commit d31c775 into apache:main Aug 4, 2023
hussein-awala added a commit to hussein-awala/airflow that referenced this pull request Aug 4, 2023
potiuk pushed a commit that referenced this pull request Aug 4, 2023
hussein-awala added a commit to hussein-awala/airflow that referenced this pull request Aug 4, 2023
potiuk pushed a commit that referenced this pull request Aug 4, 2023
…ers (#33127)

* Revert "Revert "Fix waiting the base container when reading the logs of other containers (#33092)" (#33125)"

This reverts commit 4fbbdbc.

* patch sidecar methods
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:providers provider:cncf-kubernetes Kubernetes (k8s) provider related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants