beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lukecwik <...@git.apache.org>
Subject [GitHub] beam pull request #3992: [BEAM-1487, BEAM-3016] Address termination correctn...
Date Fri, 13 Oct 2017 16:41:12 GMT
GitHub user lukecwik opened a pull request:

    https://github.com/apache/beam/pull/3992

    [BEAM-1487, BEAM-3016] Address termination correctness issues in BufferingStreamObserver
& BeamFnLoggingClient

    The issue with BeamFnLoggingClient is that we can't arriveAndDeregister during termination
since
    the onReadyHandler may also arrive at the same time which is why we swap to using forced
termination.
    Also, I added code that would guarantee that log messages produced by the thread which
is shutting
    down are guaranteed to make it (this was being caught occassionally by the testLogging
test).
    
    The BufferingStreamObserver was incorrectly shutting down since it may attempt to enqueue
something
    into a full queue with a reading thread that has already exitted for some reason so it
would loop
    forever attempting to insert the poison pill.
    
    Follow this checklist to help us incorporate your contribution quickly and easily:
    
     - [ ] Make sure there is a [JIRA issue](https://issues.apache.org/jira/projects/BEAM/issues/)
filed for the change (usually before you start working on it).  Trivial changes like typos
do not require a JIRA issue.  Your pull request should address just this issue, without pulling
in other changes.
     - [ ] Each commit in the pull request should have a meaningful subject line and body.
     - [ ] Format the pull request title like `[BEAM-XXX] Fixes bug in ApproximateQuantiles`,
where you replace `BEAM-XXX` with the appropriate JIRA issue.
     - [ ] Write a pull request description that is detailed enough to understand what the
pull request does, how, and why.
     - [ ] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will
be performed on your pull request automatically.
     - [ ] If this contribution is large, please file an Apache [Individual Contributor License
Agreement](https://www.apache.org/licenses/icla.pdf).
    
    ---


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/lukecwik/incubator-beam master

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/beam/pull/3992.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3992
    
----
commit 9dd1c5be1c79de55a49e827e8cd9d2418a9a55b8
Author: Luke Cwik <lcwik@google.com>
Date:   2017-10-12T23:26:29Z

    [BEAM-1487, BEAM-3016] Address termination correctness issues in BufferingStreamObserver
& BeamFnLoggingClient
    
    The issue with BeamFnLoggingClient is that we can't arriveAndDeregister during termination
since
    the onReadyHandler may also arrive at the same time which is why we swap to using forced
termination.
    Also, I added code that would guarantee that log messages produced by the thread which
is shutting
    down are guaranteed to make it (this was being caught occassionally by the testLogging
test).
    
    The BufferingStreamObserver was incorrectly shutting down since it may attempt to enqueue
something
    into a full queue with a reading thread that has already exitted for some reason so it
would loop
    forever attempting to insert the poison pill.

----


---

Mime
View raw message