[ https://issues.apache.org/jira/browse/BEAM-6512?focusedWorklogId=198162&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-198162 ]
ASF GitHub Bot logged work on BEAM-6512: ---------------------------------------- Author: ASF GitHub Bot Created on: 13/Feb/19 15:41 Start Date: 13/Feb/19 15:41 Worklog Time Spent: 10m Work Description: TheNeuralBit commented on issue #7794: [BEAM-6512] Run GrpcDataServiceTest clients on the main thread URL: https://github.com/apache/beam/pull/7794#issuecomment-463247784 I think the cause of the race condition is that the futures can return before the clients receive all the data. Nothing in the future is blocking until all the messages have been received. There's a build scan with some additional logging in [BEAM-6512](https://issues.apache.org/jira/browse/BEAM-6512) where you can see this happening. As far as the intent of the test, my understanding is that we're trying to test [this](https://github.com/apache/beam/blob/b953645ed6db837d24284d7fe1fe091e7309f821/runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/data/GrpcDataService.java#L98), which attempts to ensure only one of the created multiplexers is actually used. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 198162) Time Spent: 2h (was: 1h 50m) > [beam_PreCommit_Java_Cron] [GrpcDataServiceTest] Flake, Multiplexer hanging up > ------------------------------------------------------------------------------ > > Key: BEAM-6512 > URL: https://issues.apache.org/jira/browse/BEAM-6512 > Project: Beam > Issue Type: Bug > Components: test-failures > Reporter: Daniel Oliveira > Assignee: Brian Hulette > Priority: Minor > Labels: currently-failing, flake, triaged > Time Spent: 2h > Remaining Estimate: 0h > > _Use this form to file an issue for test failure:_ > * [Jenkins Job|https://builds.apache.org/job/beam_PreCommit_Java_Cron/869/] > * [Gradle Build Scan|https://scans.gradle.com/s/wodzocvegyy5a] > * [Test source > code|https://github.com/apache/beam/blob/f560edc5a4e38cb13d41718540271ae79d7d00ee/runners/java-fn-execution/src/test/java/org/apache/beam/runners/fnexecution/data/GrpcDataServiceTest.java#L105] > Initial investigation: > I see this message: > {noformat} > org.apache.beam.runners.fnexecution.data.GrpcDataServiceTest > > testMessageReceivedBySingleClientWhenThereAreMultipleClients FAILED > java.lang.AssertionError at GrpcDataServiceTest.java:105 > {noformat} > And this message: > {noformat} > [grpc-default-executor-2] WARN > org.apache.beam.sdk.fn.data.BeamFnDataGrpcMultiplexer - Hanged up for unknown > endpoint. > Jan 25, 2019 6:16:02 PM > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.SerializingExecutor run > SEVERE: Exception while executing runnable > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed@41415b8e > java.lang.RuntimeException: > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.StatusRuntimeException: > CANCELLED: Multiplexer hanging up > at > org.apache.beam.sdk.fn.test.TestStreams.lambda$throwingErrorHandler$0(TestStreams.java:95) > at > org.apache.beam.sdk.fn.test.TestStreams$ForwardingCallStreamObserver.onError(TestStreams.java:144) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:420) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:403) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:459) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:546) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:467) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:584) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.StatusRuntimeException: > CANCELLED: Multiplexer hanging up > at > org.apache.beam.vendor.grpc.v1p13p1.io.grpc.Status.asRuntimeException(Status.java:526) > ... 19 more > {noformat} > Note that the second message is something I've seen when successfully ending > a job without in portable runners (specifically the Java Reference Runner), > so it might be a red herring. -- This message was sent by Atlassian JIRA (v7.6.3#76005)