Repository navigation
CI: install Python UDF worker dependencies for host coverage tests #29201
Description
Summary
The host UT and coverage jobs for MatrixOne PR #29152 fail before the Python UDF worker can listen because the hosted test environment does not install the checked-out worker requirements. The stable error is:
ModuleNotFoundError: No module named 'pyarrow'
dial tcp 127.0.0.1:<ephemeral-port>: connect: connection refused
The connection errors are follow-on failures after the worker exits during import.
Source PR and failed checks
- PR: Rebuild Python UDF with typed revisions and Arrow Flight execution #29152
- Exact head:
6091a55bc442a098a149a17f278f4a2ac08d4823 - Branch:
m-28132 - CI Required: https://github.com/matrixorigin/matrixone/actions/runs/35549200935/job/106189012607
- Coverage: https://github.com/matrixorigin/matrixone/actions/runs/35549200935/job/106188296196
- UT Coverage on Ubuntu/x86: https://github.com/matrixorigin/matrixone/actions/runs/35549200935/job/106180736586
The exact run is 35549200935, attempt 1. The complete captured logs show:
- UT Coverage failed in
pkg/udf/python; six real-worker tests andTestRealWorkerStopRecordsCompletionobserve the missingpyarrowimport and then refused worker connections. - Coverage received
prerequisites_ready=falseand failed withcoverage merge blocked: a required producer did not publish a complete coverage profile; no coverage verdict was calculated. No coverage verdict was calculated. - CI Required only reports
matrixone-ut-coverage: failure.
The runner diagnostics reported 15 GiB memory with substantial free memory and 46 GiB free disk; no OOM or disk-exhaustion signature was present.
Evidence that the failure is in the shared CI setup
The failing job downloaded the shared workflow from the main branch of matrixorigin/CI at commit c76c48c66de9e4684696a02510835a21d4a0aad9. The MatrixOne PR changes the Python UDF worker requirements and real-worker tests, but does not change a GitHub workflow.
The independent upstream fix is already prepared in matrixorigin/CI#457 at head 6f7d4ea2fd90e51e63e21fac9b1afc0c73ed95be. Its exact diff adds the setup action to the existing host UT and coverage jobs and installs pkg/udf/python/worker/requirements.txt in a job-owned Python 3.12 environment, verifies pyarrow.flight, and exports that interpreter for Go subprocesses. The upstream PR is still open and requires review, so the hosted jobs cannot receive this setup yet.
Reproduction
- Run the existing host UT or coverage workflow against a checkout containing
pkg/udf/python/worker/requirements.txtbefore the setup action is activated. - Start the real Python worker test path.
- The worker imports
pyarrow, exits withModuleNotFoundError, and the Go test reports connection refused for the worker endpoint. - Coverage then receives no complete UT producer profile and reports
prerequisites_ready=false.
Resolution
Activate the shared CI setup from CI PR #457, then rerun the failed jobs for MatrixOne run 35549200935 once. This issue is limited to the CI dependency setup; it does not propose weakening or skipping the Python UDF contract tests.
Activity
iamlinjunhong commentedon Sep 21, 2026
Evidence update for the authorized failed-job rerun of MatrixOne run 35549200935.
Exact head:
6091a55bc442a098a149a17f278f4a2ac08d4823; attempt 2 was accepted and completed with failure. Complete failed log was captured fromgh run view 35549200935 --attempt 2 --log-failed(SHA-256a82e629f28ea42d386a54a29b633112e68071539e30ec6c33017eca76353e86f).Fail on coverage UT failure: six real-worker tests plusTestRealWorkerStopRecordsCompletionfailed. Each worker exited atworker.py:48withModuleNotFoundError: No module named 'pyarrow'; the Go tests then reported connection refused and the step exited 1.\n- Coverage job 106279990992, failed stepVerify coverage prerequisites:prerequisites_ready: false, followed bycoverage merge blocked: a required producer did not publish a complete coverage profile; no coverage verdict was calculated.\n- CI Required job 106280051496, failed stepRun actions/github-script@v7: aggregation reportedmatrixone-ut-coverage: failureandmatrixone-coverage-merge: failure.\n\nThe runner diagnostics showed 15 GiB memory, 13 GiB available memory, 46 GiB free disk, and no OOM signal. PR Rebuild Python UDF with typed revisions and Arrow Flight execution #29152 still contains no.githubor.ci-workflowchange. The shared setup correction remains matrixorigin/CI#457, currently open and awaiting review; it installs the checked-out Python UDF worker requirements in the host jobs. No MatrixOne source change or additional rerun is requested by this update.iamlinjunhong commentedon Sep 22, 2026
Evidence update for MatrixOne run 35602821586 at the current PR head.
e30a91c047ffed9999b2850d2ecf011e183db909; attempt 1.The complete failed logs show six real-worker Python UDF tests failing at
worker.py:48withModuleNotFoundError: No module named 'pyarrow', followed by connection refused; Coverage then reportsprerequisites_ready: falseand blocks the merge because no complete producer profile was published; CI Required aggregates the producer and merge failures. The MatrixOne PR changes no CI workflow.\n\nThis matches the existing shared-host setup defect tracked here. The independent correction remains matrixorigin/CI#457, which installs the checked-out worker requirements and verifiespyarrow.flightin the existing host UT and coverage jobs. The current run will be rerun once under the authorized CI issue procedure; no test is being skipped and no MatrixOne runtime dependency change is proposed.iamlinjunhong commentedon Sep 22, 2026
Evidence update for the current exact-head CI run 35689522410 (attempt 1).
36e831b66dfb658145070de55971c2e12f2a4c08; branch:m-28132The complete failed logs were read from the three jobs. The failure signatures are:
106623493880, failed stepFail on coverage UT failure: six real-worker tests inpkg/udf/pythonfailed. Each worker exited atpkg/udf/python/worker/worker.py:48withModuleNotFoundError: No module named 'pyarrow'; the Go tests then reported connection refused. There were no build failures.106633088525, failed stepVerify coverage prerequisites:prerequisites_ready: false, followed bycoverage merge blocked: a required producer did not publish a complete coverage profile; no coverage verdict was calculated.106634500500, failed stepRun actions/github-script@v7: aggregation reportedmatrixone-ut-coverage: failureandmatrixone-coverage-merge: failure.The UT job fetched
matrixorigin/CIshared workflow commitc76c48c66de9e4684696a02510835a21d4a0aad9frommain. MatrixOne PR #29152 adds the worker requirements and real-worker tests, but does not modify.githubor.ci-workflow; itsoptools/run_ut.shdependency fallback is not used by this shared coverage workflow. The independent setup correction remains matrixorigin/CI#457, which installs the checked-out worker requirements in the host UT/coverage jobs and exposes the prepared interpreter. This is the same open CI setup defect tracked here; no MatrixOne runtime workaround, skipped test, or weakened assertion is proposed.The failed jobs for run
35689522410will be rerun once after this evidence update, as authorized by the intake procedure.