[ https://issues.apache.org/jira/browse/BEAM-2544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16068941#comment-16068941 ]
ASF GitHub Bot commented on BEAM-2544: -------------------------------------- GitHub user alex-filatov opened a pull request: https://github.com/apache/beam/pull/3475 [BEAM-2544] Fix flaky AvroIOTest Source of the flakiness is a race condition in a "write then read" subset of tests. Test pipeline was constructed in a way that write and read operations were performed concurrently instead of sequentially. You can merge this pull request into a Git repository by running: $ git pull https://github.com/alex-filatov/beam beam-2544-fix-flaky-avroittest Alternatively you can review and apply these changes as the patch at: https://github.com/apache/beam/pull/3475.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 #3475 ---- commit 1b6b38c7069820ca81dd18f44576c3959c35d80a Author: Alex Filatov <alex-fila...@users.noreply.github.com> Date: 2017-06-29T20:23:04Z [BEAM-2544] Fix flaky AvroIOTest by eliminating race condition in "write then read" tests. ---- > AvroIOTest is flaky > ------------------- > > Key: BEAM-2544 > URL: https://issues.apache.org/jira/browse/BEAM-2544 > Project: Beam > Issue Type: Bug > Components: sdk-java-core > Reporter: Alex Filatov > Assignee: Davor Bonaci > Priority: Minor > > "Write then read" tests randomly fail. > Steps to reproduce: > cd <path to beam>/runners/direct-java > mvn clean compile > mvn surefire:test@validates-runner-tests -Dtest=AvroIOTest > Repeat last step until a failure (on my machine failure rate is approx 1/3). > Example: > [ERROR] > testAvroIOWriteAndReadSchemaUpgrade(org.apache.beam.sdk.io.AvroIOTest) Time > elapsed: 0.198 s <<< ERROR! > java.lang.RuntimeException: java.io.FileNotFoundException: > /var/folders/1c/sl733g5s1g7_4mq61_qmbjx40000gn/T/junit3332447750239941326/output.avro > (No such file or directory) > at > org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:340) > at > org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:302) > at > org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:201) > at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:64) > at org.apache.beam.sdk.Pipeline.run(Pipeline.java:297) > at org.apache.beam.sdk.Pipeline.run(Pipeline.java:283) > at org.apache.beam.sdk.testing.TestPipeline.run(TestPipeline.java:340) > at > org.apache.beam.sdk.io.AvroIOTest.testAvroIOWriteAndReadSchemaUpgrade(AvroIOTest.java:275) > 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.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:239) > at > org.apache.beam.sdk.testing.TestPipeline$1.evaluate(TestPipeline.java:321) > at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) > at > org.apache.beam.sdk.testing.TestPipeline$1.evaluate(TestPipeline.java:321) > at org.junit.rules.RunRules.evaluate(RunRules.java:20) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:27) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55) > at > org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137) > at > org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107) > at > org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83) > at > org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75) > at > org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:157) > at > org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386) > at > org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143) > Caused by: java.io.FileNotFoundException: > /var/folders/1c/sl733g5s1g7_4mq61_qmbjx40000gn/T/junit3332447750239941326/output.avro > (No such file or directory) > at java.io.FileInputStream.open0(Native Method) > at java.io.FileInputStream.open(FileInputStream.java:195) > at java.io.FileInputStream.<init>(FileInputStream.java:138) > at org.apache.beam.sdk.io.LocalFileSystem.open(LocalFileSystem.java:90) > at org.apache.beam.sdk.io.LocalFileSystem.open(LocalFileSystem.java:55) > at org.apache.beam.sdk.io.FileSystems.open(FileSystems.java:221) > at > org.apache.beam.sdk.io.FileBasedSource$FileBasedReader.startImpl(FileBasedSource.java:457) > at > org.apache.beam.sdk.io.OffsetBasedSource$OffsetBasedReader.start(OffsetBasedSource.java:271) > at > org.apache.beam.runners.direct.BoundedReadEvaluatorFactory$BoundedReadEvaluator.processElement(BoundedReadEvaluatorFactory.java:141) > at > org.apache.beam.runners.direct.TransformExecutor.processElements(TransformExecutor.java:146) > at > org.apache.beam.runners.direct.TransformExecutor.run(TransformExecutor.java:110) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) -- This message was sent by Atlassian JIRA (v6.4.14#64029)