Alexey Serbin has posted comments on this change. ( http://gerrit.cloudera.org:8080/17486 )
Change subject: KUDU-3277 fix concurrent session flush issue in Java client ...................................................................... Patch Set 1: (3 comments) > (3 comments) > > Looks like the test failed in TSAN. The workload might be a little > too intense and the slower TSAN environment times out. > 1) testConcurrentFlush(org.apache.kudu.client.TestKuduClient) > org.junit.runners.model.TestTimedOutException: test timed out after > 100000 milliseconds > at sun.misc.Unsafe.park(Native Method) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) > at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231) > at > org.apache.kudu.client.TestKuduClient.testConcurrentFlush(TestKuduClient.java:1530) Thank you for taking a look at that. I added logic to skip the testConcurrentFlush scenario for sanitized builds (the new functionality depends on one extra patch: https://gerrit.cloudera.org/#/c/17487/) http://gerrit.cloudera.org:8080/#/c/17486/1/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java File java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java: http://gerrit.cloudera.org:8080/#/c/17486/1/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java@894 PS1, Line 894: if (injectLatencyBufferFlushCb) { : try { : Thread.sleep(randomizer.nextInt(16)); : } catch (InterruptedException e) { : Thread.currentThread().interrupt(); : } : } > Java does't really have multiple binary types. This approach makes sense. Yep, it seems pre-processor could be useful here, but Java lacks one. http://gerrit.cloudera.org:8080/#/c/17486/1/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java@1005 PS1, Line 1005: injectLatencyBufferFlushCb = injectLatency; > Maybe log a warning here so it's easy to tell from the logs that latency wi Done http://gerrit.cloudera.org:8080/#/c/17486/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java File java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java: http://gerrit.cloudera.org:8080/#/c/17486/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java@1468 PS1, Line 1468: 501 > Is this specific value particularly significant? Looks like it's just over Ah, that's doesn't matter much -- it's a left-over from one of many iterations of this test. Removed. -- To view, visit http://gerrit.cloudera.org:8080/17486 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If6aaccc06abf1a2673620ab7c649f51f91999ad9 Gerrit-Change-Number: 17486 Gerrit-PatchSet: 1 Gerrit-Owner: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com> Gerrit-Reviewer: Bankim Bhavsar <ban...@cloudera.com> Gerrit-Reviewer: Grant Henke <granthe...@apache.org> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Comment-Date: Sat, 22 May 2021 21:16:56 +0000 Gerrit-HasComments: Yes