[
https://issues.apache.org/jira/browse/BEAM-10392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17152332#comment-17152332
]
Luke Cwik commented on BEAM-10392:
----------------------------------
There was a race between when the pipeline started to run and when the
publishing thread started publishing which lead the logs stating that the
message was "unroutable". This was reproducible very easily when I removed the
Thread.sleep(5000) from the test code and I was able to mirror the error I saw
in Jenkins.
> :sdks:java:io:rabbitmq:test gets stuck regularly
> ------------------------------------------------
>
> Key: BEAM-10392
> URL: https://issues.apache.org/jira/browse/BEAM-10392
> Project: Beam
> Issue Type: Improvement
> Components: io-java-rabbitmq
> Reporter: Luke Cwik
> Assignee: Luke Cwik
> Priority: P2
> Time Spent: 1h 50m
> Remaining Estimate: 0h
>
> See [https://ci-beam.apache.org/job/beam_PreCommit_Java_Commit/12017/] for an
> example.
> Here is one with the stack trace
> https://ci-beam.apache.org/job/beam_PreCommit_Java_Commit/12035/testReport/junit/org.apache.beam.sdk.io.rabbitmq/RabbitMqIOTest/classMethod/:
> {code:java}
> org.junit.runners.model.TestTimedOutException: test timed out after 5 minutes
> at sun.misc.Unsafe.park(Native Method)
> at
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
> at
> java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
> at
> org.apache.beam.runners.direct.ExecutorServiceParallelExecutor$QueueMessageReceiver.tryNext(ExecutorServiceParallelExecutor.java:410)
> at
> org.apache.beam.runners.direct.ExecutorServiceParallelExecutor$QueueMessageReceiver.access$300(ExecutorServiceParallelExecutor.java:383)
> at
> org.apache.beam.runners.direct.ExecutorServiceParallelExecutor.waitUntilFinish(ExecutorServiceParallelExecutor.java:245)
> at
> org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:343)
> at
> org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:318)
> at
> org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:213)
> at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:67)
> at org.apache.beam.sdk.Pipeline.run(Pipeline.java:317)
> at org.apache.beam.sdk.testing.TestPipeline.run(TestPipeline.java:350)
> at org.apache.beam.sdk.testing.TestPipeline.run(TestPipeline.java:331)
> at
> org.apache.beam.sdk.io.rabbitmq.RabbitMqIOTest.doExchangeTest(RabbitMqIOTest.java:232)
> at
> org.apache.beam.sdk.io.rabbitmq.RabbitMqIOTest.doExchangeTest(RabbitMqIOTest.java:255)
> at
> org.apache.beam.sdk.io.rabbitmq.RabbitMqIOTest.testUseCorrelationIdFailsWhenIdsMissing(RabbitMqIOTest.java:362)
> 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:59)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at
> org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:19)
> at
> org.apache.beam.sdk.testing.TestPipeline$1.evaluate(TestPipeline.java:319)
> at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
> at
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:365)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
> at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
> at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:288)
> at
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:282)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)