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

Reply via email to