Uh oh!
There was an error while loading. Please reload this page.
[BEAM-10702] Do not implicitly decompress artifacts - #12571
Conversation
tvalentyn
commented
Aug 13, 2020
@robertwb@ihji@chamikaramj - do you know what is the status of Portable local runner tests? It sounds like the codepath with the bug that @jkff discovered has no test coverage. Do you have a recommendation or plan to improve testing? |
FWIW: I can reproduce this with the local Flink runner too: Are there any tests running with these settings? Note that the issue reproduces only if there are any compressed artifacts to stage: either a non-empty Maybe there already are some tests, and we can make them have a requirements.txt or setup.py? |
jkff
commented
Aug 13, 2020
Looks like we do have a test with a setup.py - it's the Julia Set example. I'll try to add that as a test. |
tvalentyn
commented
Aug 13, 2020
Likely not exactly, since if we had such tests, they should have been red. We do exercise --requirements_file=requirements.txt in Dataflow Postcommits, but those postcommits don't exercise the artifact service Python implementation. I don't think we have a test that exercises Julia Set example as an integration test either (BEAM-10639), so that would be a great addition in test coverage. |
tvalentyn
commented
Aug 13, 2020
Current changes LGTM. |
jkff
commented
Aug 13, 2020
Run Python 3.8 PostCommit |
jkff
commented
Aug 13, 2020
Thanks @tvalentyn ! I added a Julia Set test that reproduces the issue and passes with the fix. |
jkff
commented
Aug 13, 2020
(PVR_Flink is already failing - not caused by this PR) |
jkff
commented
Aug 14, 2020
The python precommit test failure is also spurious - unrelated to the PR, and passes for me locally. |
There was a problem hiding this comment.
I suggest moving this to
jkff
commented
Aug 14, 2020
Thanks @tvalentyn ! Addressed your comment, will merge. |
Also adds a Julia set test on portable local runner, which uses a setup.py and hence exercises the artifact staging codepath. This is a squashed cherrypick of #12571
…ess artifacts (#12619) * [BEAM-10702] Do not implicitly decompress artifacts Also adds a Julia set test on portable local runner, which uses a setup.py and hence exercises the artifact staging codepath. This is a squashed cherrypick of #12571 * Add enum34 to manual_licenses
Context: https://issues.apache.org/jira/browse/BEAM-10702
Looks like the artifact service started with
--job_endpoint=embedusesFileSystems.opento read the artifacts to be staged, which by default decompresses the artifacts if they are compressed. PIP packages are compressed as .tar.gz, so when the worker container retrieves the PIP packages to install, they see .tar.gz files whose contents is actually the underlying .tar file.I would appreciate guidance for where to add tests for this.
artifact_service_testuses an in-memory file reader fn that doesn't actually share the code being used in production. Should I change that?worker_handlers_testdoes not exist - there'sfn_runner_test.pyin that directory but I'm not sure how to test the artifact staging codepath via there.job_endpoint=embed? If not, how would I go about adding some?R: @robertwb@pabloem
Post-Commit Tests Status (on master branch)
Pre-Commit Tests Status (on master branch)
See .test-infra/jenkins/README for trigger phrase, status and link of all Jenkins jobs.
GitHub Actions Tests Status (on master branch)
See CI.md for more information about GitHub Actions CI.