----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/52631/ -----------------------------------------------------------
Review request for hive, Aihua Xu, Miklos Csanady, Peter Vary, Szehon Ho, and Barna Zsombor Klara. Bugs: HIVE-14839 https://issues.apache.org/jira/browse/HIVE-14839 Repository: hive-git Description ------- The TestSessionManagerMetrics fails occasionally with the following error: org.junit.ComparisonFailure: expected:<[0]> but was:<[1]> at org.apache.hive.service.cli.session.TestSessionManagerMetrics.testThreadPoolMetrics(TestSessionManagerMetrics.java:98) Changed the synchronization between the tasks a bit to avoid these failures. With this patch the test would work do the following steps: - Submit four tasks. - Wait with the metrics verification, until the first two tasks are running. This is done by invoking await on the "ready" barrier. If, for some reason, the tasks are not started within a timeout period, make the test fail. - Make the tasks wait until the metrics are checked. This is done by invoking await on the "completed" barrier. - Verify the metrics. - Let the first two tasks complete by breaking the "complete" barrier. When the first two tasks completed, the remaining two tasks will be removed from the queue and started. - Wait until the remaining tasks are running by using the "ready" barrier again. Do the metrics check only if they are started to avoid the failures when the queue size was not 0. If, for some reason, the tasks are not started within a timeout period, make the test fail. - Verify the metrics. - Let the remaining tasks complete by breaking the "completed" barrier. Diffs ----- service/src/test/org/apache/hive/service/cli/session/TestSessionManagerMetrics.java 5511c54 Diff: https://reviews.apache.org/r/52631/diff/ Testing ------- The change effects only a unit test. Ran the test many times locally. Added random sleeps to the tasks to simulate the delay when they start or complete and ran the test many times to see if the synch between the tasks is working correctly. Thanks, Marta Kuczora