[
https://issues.apache.org/jira/browse/BEAM-6111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705109#comment-16705109
]
Luke Cwik commented on BEAM-6111:
---------------------------------
By default, gRPC provides outbound stream observers that aren't thread safe
(for perf reasons) and expects people interacting with them to make them thread
safe. The issue seems to be that GrpcStateService assumes that the outbound
stream observer is thread safe but by default it is not.
In addition to what you have added, we should also make the GrpcStateService
take in an OutboundObserverFactory that allows the person constructing it to
choose whether they want a "buffered and thread safe outbound observer" or a
"non thread safe (aka direct)" observer and then the GrpcStateService will
provide the necessary hooks for allowing runners to choose whether state
requests are handled in parallel or not.
> org.apache.beam.runners.flink.PortableTimersExecutionTest is very flakey
> 40/50 runs failed
> ------------------------------------------------------------------------------------------
>
> Key: BEAM-6111
> URL: https://issues.apache.org/jira/browse/BEAM-6111
> Project: Beam
> Issue Type: Bug
> Components: runner-flink
> Reporter: Alex Amato
> Assignee: Maximilian Michels
> Priority: Major
> Labels: flake
> Time Spent: 40m
> Remaining Estimate: 0h
>
> I ran this test 50 on master and it failed about 40/50 runs. I have also seen
> this failing in jenkins presubmit.
> build scan links from java presubmit
> https://builds.apache.org/job/beam_PreCommit_Java_Commit/2654/
> build scan links when I ran locally:
> [https://scans.gradle.com/s/hzu3bojfdbd5s]
> [https://scans.gradle.com/s/txhyj6acebkko]
> [https://scans.gradle.com/s/nhju5jthjbdds]
> org.junit.runners.model.TestTimedOutException: test timed out after 60000
> milliseconds
> at java.lang.ClassLoader.findBootstrapClass(Native Method)
> at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1015)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:413)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:339)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:13)
> at org.junit.Assert.assertThat(Assert.java:956)
> at org.junit.Assert.assertThat(Assert.java:923)
> at
> org.apache.beam.runners.flink.PortableTimersExecutionTest.testTimerExecution(PortableTimersExecutionTest.java:191)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
> at
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.lang.Thread.run(Thread.java:748)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)