[fast-client] Fix 3 fast client bugs where CompletableFutures are never completed #10115
VeniceCI-StaticAnalysisAndUnitTests.yml
on: pull_request
Matrix: Clients / UT & CodeCov
Matrix: Controller / UT & CodeCov
Matrix: Integrations / UT & CodeCov
Matrix: Internal / UT & CodeCov
Matrix: Router / UT & CodeCov
Matrix: Server / UT & CodeCov
Matrix: StaticAnalysis
ValidateGradleWrapper
14s
StaticAnalysisAndUnitTestsFailureAlert
0s
Annotations
10 errors
|
LeakedPushStatusCleanUpServiceTest.testLeakedZKNodeShouldBeDeleted:
services/venice-controller/src/test/java/com/linkedin/venice/pushmonitor/LeakedPushStatusCleanUpServiceTest.java#L95
org.mockito.exceptions.verification.ArgumentsAreDifferent: Argument(s) are different! Wanted:
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpServiceTest.testLeakedZKNodeShouldBeDeleted(LeakedPushStatusCleanUpServiceTest.java:95)
Actual invocations have different arguments:
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushSta
|
|
LeakedPushStatusCleanUpServiceTest.testLeakedZKNodeShouldBeDeleted:
services/venice-controller/src/test/java/com/linkedin/venice/pushmonitor/LeakedPushStatusCleanUpServiceTest.java#L95
org.mockito.exceptions.verification.ArgumentsAreDifferent: Argument(s) are different! Wanted:
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpServiceTest.testLeakedZKNodeShouldBeDeleted(LeakedPushStatusCleanUpServiceTest.java:95)
Actual invocations have different arguments:
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:129)
offlinePushAccessor.getOfflinePushStatusCreationTime(
"test_store_v2"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.run(LeakedPushStatusCleanUpService.java:152)
offlinePushAccessor.deleteOfflinePushStatusAndItsPartitionStatuses(
"test_store_v1"
);
-> at com.linkedin.venice.pushmonitor.LeakedPushStatusCleanUpService$PushStatusCleanUpTask.lambda$run$1(LeakedPushStatusCleanUpService.java:183)
offlinePushAccessor.loadOfflinePushStatusPaths(
);
-> at com.linkedin.venice.pushmonitor.LeakedPushSta
|
|
InstanceSizeEstimatorTest.testInstanceMeasurement:
internal/venice-common/src/test/java/com/linkedin/venice/memory/InstanceSizeEstimatorTest.java#L49
java.lang.AssertionError: Class KafkaKey has a memoryAllocatedPerInstance (37.3766) which is too far from the predictedUsage (40); delta: 0.066; maxAllowedDelta: 0.027. No more attempts left.
|
|
InstanceSizeEstimatorTest.testInstanceMeasurement:
internal/venice-common/src/test/java/com/linkedin/venice/memory/InstanceSizeEstimatorTest.java#L49
java.lang.AssertionError: Class KafkaKey has a memoryAllocatedPerInstance (37.3766) which is too far from the predictedUsage (40); delta: 0.066; maxAllowedDelta: 0.027. No more attempts left.
|
|
SITWithSAwarePWiseAndBufferAfterLeaderTest.testRecordTransformerDatabaseChecksumRecordTransformationDisabled[0](AA_ON):
clients/da-vinci-client/src/test/java/com/linkedin/davinci/kafka/consumer/SITWithSAwarePWiseAndBufferAfterLeaderTest.java#L1
java.lang.AssertionError: expected [true] but found [false]
|
|
SITWithPWiseAndBufferAfterLeaderTest.methodSetUp:
clients/da-vinci-client/src/test/java/com/linkedin/davinci/kafka/consumer/SITWithPWiseAndBufferAfterLeaderTest.java#L1
org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock) here:
-> at com.linkedin.davinci.stats.AggKafkaConsumerServiceStats.recordTotalUpdateCurrentAssignmentLatency(AggKafkaConsumerServiceStats.java:68)
Example of correct verification:
verify(mock).doSomething()
Also, this error might show up because you verify either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
Mocking methods declared on non-public parent classes is not supported.
|
|
SITWithPWiseAndBufferAfterLeaderTest.testVeniceMessagesProcessingWithSortedInputWithBlobMode[2](false, true):
clients/da-vinci-client/src/test/java/com/linkedin/davinci/kafka/consumer/SITWithPWiseAndBufferAfterLeaderTest.java#L1
org.mockito.exceptions.misusing.CannotStubVoidMethodWithReturnValue:
'put' is a *void method* and it *cannot* be stubbed with a *return value*!
Voids are usually stubbed with Throwables:
doThrow(exception).when(mock).someVoidMethod();
If you need to set the void method to do nothing you can use:
doNothing().when(mock).someVoidMethod();
For more information, check out the javadocs for Mockito.doNothing().
***
If you're unsure why you're getting above error read on.
Due to the nature of the syntax above problem might occur because:
1. The method you are trying to stub is *overloaded*. Make sure you are calling the right overloaded version.
2. Somewhere in your test you are stubbing *final methods*. Sorry, Mockito does not verify/stub final methods.
3. A spy is stubbed using when(spy.foo()).then() syntax. It is safer to stub spies -
- with doReturn|Throw() family of methods. More in javadocs for Mockito.spy() method.
4. Mocking methods declared on non-public parent classes is not supported.
|
|
SITWithSAwarePWiseAndBufferAfterLeaderTest.testRecordTransformerDatabaseChecksumRecordTransformationDisabled[0](AA_ON):
clients/da-vinci-client/src/test/java/com/linkedin/davinci/kafka/consumer/SITWithSAwarePWiseAndBufferAfterLeaderTest.java#L1
java.lang.AssertionError: expected [true] but found [false]
|
|
SITWithPWiseAndBufferAfterLeaderTest.methodSetUp:
clients/da-vinci-client/src/test/java/com/linkedin/davinci/kafka/consumer/SITWithPWiseAndBufferAfterLeaderTest.java#L1
org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock) here:
-> at com.linkedin.davinci.stats.AggKafkaConsumerServiceStats.recordTotalUpdateCurrentAssignmentLatency(AggKafkaConsumerServiceStats.java:68)
Example of correct verification:
verify(mock).doSomething()
Also, this error might show up because you verify either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
Mocking methods declared on non-public parent classes is not supported.
|
|
SITWithPWiseAndBufferAfterLeaderTest.testVeniceMessagesProcessingWithSortedInputWithBlobMode[2](false, true):
clients/da-vinci-client/src/test/java/com/linkedin/davinci/kafka/consumer/SITWithPWiseAndBufferAfterLeaderTest.java#L1
org.mockito.exceptions.misusing.CannotStubVoidMethodWithReturnValue:
'put' is a *void method* and it *cannot* be stubbed with a *return value*!
Voids are usually stubbed with Throwables:
doThrow(exception).when(mock).someVoidMethod();
If you need to set the void method to do nothing you can use:
doNothing().when(mock).someVoidMethod();
For more information, check out the javadocs for Mockito.doNothing().
***
If you're unsure why you're getting above error read on.
Due to the nature of the syntax above problem might occur because:
1. The method you are trying to stub is *overloaded*. Make sure you are calling the right overloaded version.
2. Somewhere in your test you are stubbing *final methods*. Sorry, Mockito does not verify/stub final methods.
3. A spy is stubbed using when(spy.foo()).then() syntax. It is safer to stub spies -
- with doReturn|Throw() family of methods. More in javadocs for Mockito.spy() method.
4. Mocking methods declared on non-public parent classes is not supported.
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
StaticAnalysis
|
927 KB |
sha256:08fb76c40862d0cfc23ac80e43adbc4b7fe6ce1550f89bede925e98eb9bcdfda
|
|
|
clients-jdk11
|
3.22 MB |
sha256:f23cc28488e3a83c1dc13b379f02bcf7805bccb1d77e932f065b721ad9fa004d
|
|
|
clients-jdk17
|
3.24 MB |
sha256:bf53597807985c4591b180a97a8736ff625bcaa44384a7e0685a78807df9cfaa
|
|
|
clients-jdk8
|
3.2 MB |
sha256:35366c89313d854a9920607e576c8c376adf2d47f9f6e37c64c7c3ef45968f1f
|
|
|
controller-jdk11
|
1.97 MB |
sha256:071c2554c3bce2b40986d5aaffab0397768000e8d551dd6daf5d547a229e9de6
|
|
|
controller-jdk17
|
1.96 MB |
sha256:a9c05aaaedbe18a9fec07a543b140be61380abd5764271586e258497da9caf8e
|
|
|
controller-jdk8
|
1.99 MB |
sha256:b87693e8fce7169ac42fb6e7b9fa463dce5e8c58fd0d995d3bc20fa9da8cfbae
|
|
|
integrations-jdk11
|
550 KB |
sha256:0b832ceeccd103d33434a6670e6369c4b935e8d618f7a8572edcfc79a8715949
|
|
|
integrations-jdk17
|
554 KB |
sha256:e0bf5d989a054d0e88192bb0d2c6cbbb0a5fc8032788789b82424ab339f004cb
|
|
|
integrations-jdk8
|
539 KB |
sha256:266c9d655d75958e3bcd3ac17b3a8aaef33705a211c59c0ad5258eb006da886e
|
|
|
internal-jdk11
|
4.26 MB |
sha256:235bee82fbb362b0051a24f2a4a48cb2b8cd7b8a826821b95381a55827d76558
|
|
|
internal-jdk17
|
4.27 MB |
sha256:41d17a9a7bcdf846ea442b2cd3e953c581ac94a8e961993781a74aa3731d3a58
|
|
|
internal-jdk8
|
4.25 MB |
sha256:0a44f25086984fb3e0766ad7b3c72c6b186ca8d1fd88c127f30ad104bfed441d
|
|
|
router-jdk11
|
757 KB |
sha256:eb6f5afcac3db8ccce28aeabdb852d73a7b6d36a8b55bea3948c05457c8e1efd
|
|
|
router-jdk17
|
767 KB |
sha256:f2f6529c248f3f2d67e00d53636685ca4cdf2f6977f3f4aaacb1bbbcac2b3ebb
|
|
|
router-jdk8
|
750 KB |
sha256:0e67ec2517db72e57c079b363c8fb99c6787e8b5b2f4d1328cafe063abb8d2f0
|
|
|
server-jdk11
|
11.7 MB |
sha256:50970f2102e6c4fe6265e29b621aab9d3a0f2c6fb6589b4a9d89d92de498447f
|
|
|
server-jdk17
|
10.4 MB |
sha256:1c805d26566cd33a77fa2b2969f7d71e81247d8c014696189694744121b2deb9
|
|
|
server-jdk8
|
10.1 MB |
sha256:9244e6224fda451d1782d8aa302c7671ef5073d222b204b94c96fc46a37c409d
|
|