-
Notifications
You must be signed in to change notification settings - Fork 4.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
[#28187][prism] Basic cross language support. #28545
Conversation
Codecov Report
@@ Coverage Diff @@
## master #28545 +/- ##
==========================================
- Coverage 72.22% 72.22% -0.01%
==========================================
Files 684 684
Lines 100887 100901 +14
==========================================
+ Hits 72870 72879 +9
- Misses 26437 26448 +11
+ Partials 1580 1574 -6
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 3 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Assigning reviewers. If you would like to opt out of this review, comment R: @jrmccluskey for label go. Available commands:
The PR bot will only process comments in the main thread (not review comments). |
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.
LGTM, just some clarification questions
@@ -95,7 +92,7 @@ func makeWorker(env string, j *jobservices.Job) (*worker.W, error) { | |||
// Check for connection succeeding after we've created the environment successfully. | |||
timeout := 1 * time.Minute | |||
time.AfterFunc(timeout, func() { | |||
if wk.Connected() { | |||
if wk.Connected() || wk.Stopped() { |
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.
Is there a case where Stopped() could be indicative of an error in worker start-up?
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.
No. The stopped bit is only set when Stop is called, which only happens when a context has cancelled, which only happens on post Job clean up.
Other errors would be reported earlier (ideally).
This approach largely prevents this ("worker didn't connect") function from failing successful jobs after the job completed, if the job never needed the environment at all. I intend to change worker environments to start on demand, and move worker startup to after preprocessing. As it stands, a minute+ job using one of these will just die. Won't happen for real xlang transforms though.
@@ -67,7 +67,7 @@ type W struct { | |||
server *grpc.Server | |||
|
|||
// These are the ID sources | |||
inst, bund uint64 | |||
inst uint64 |
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.
This is now being pulled from the ProcessBundle instruction abstraction directly, right?
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.
Just the bundle descriptor IDs.
The shorter lived RPCs like Progress and Split still use the Instruction IDs from the worker side, rather than the "global" one in execute used by the ElementManager.
I haven't yet nailed down the best way to have "global" state accessed by the worker abstraction, vs dedicated state (like environment protos). It's getting there though.
This PR allows prism to pass the 7 of the 8 tests in the Basic Xlang tests. This remains experimental for prism.
Fixes a bug in Go SDK iterators where io.EOF was getting incorrectly wrapped, preventing downstream behavior on iterator read calls. Triggered by the Java CoGBK transform results.
TestXLang_CoGroupBy is the only one that doesn't pass at present, but passing CoGBKResult output over cross language boundaries is uncommon. #28544 filed to resolve.
See #28187
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:
addresses #123
), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, commentfixes #<ISSUE NUMBER>
instead.CHANGES.md
with noteworthy changes.See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)
See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.