use of org.apache.kafka.common.requests.WriteTxnMarkersRequest in project kafka by apache.
the class KafkaAdminClientTest method testAbortTransaction.
@Test
public void testAbortTransaction() throws Exception {
try (AdminClientUnitTestEnv env = mockClientEnv()) {
TopicPartition topicPartition = new TopicPartition("foo", 13);
AbortTransactionSpec abortSpec = new AbortTransactionSpec(topicPartition, 12345L, (short) 15, 200);
Node leader = env.cluster().nodes().iterator().next();
expectMetadataRequest(env, topicPartition, leader);
env.kafkaClient().prepareResponseFrom(request -> request instanceof WriteTxnMarkersRequest, writeTxnMarkersResponse(abortSpec, Errors.NONE), leader);
AbortTransactionResult result = env.adminClient().abortTransaction(abortSpec);
assertNull(result.all().get());
}
}
use of org.apache.kafka.common.requests.WriteTxnMarkersRequest in project kafka by apache.
the class KafkaAdminClientTest method testAbortTransactionFindLeaderAfterDisconnect.
@Test
public void testAbortTransactionFindLeaderAfterDisconnect() throws Exception {
MockTime time = new MockTime();
int retryBackoffMs = 100;
Cluster cluster = mockCluster(3, 0);
Map<String, Object> configOverride = newStrMap(AdminClientConfig.RETRY_BACKOFF_MS_CONFIG, "" + retryBackoffMs);
try (AdminClientUnitTestEnv env = new AdminClientUnitTestEnv(time, cluster, configOverride)) {
TopicPartition topicPartition = new TopicPartition("foo", 13);
AbortTransactionSpec abortSpec = new AbortTransactionSpec(topicPartition, 12345L, (short) 15, 200);
Iterator<Node> nodeIterator = env.cluster().nodes().iterator();
Node firstLeader = nodeIterator.next();
expectMetadataRequest(env, topicPartition, firstLeader);
WriteTxnMarkersResponse response = writeTxnMarkersResponse(abortSpec, Errors.NONE);
env.kafkaClient().prepareResponseFrom(request -> {
// We need a sleep here because the client will attempt to
// backoff after the disconnect
time.sleep(retryBackoffMs);
return request instanceof WriteTxnMarkersRequest;
}, response, firstLeader, true);
Node retryLeader = nodeIterator.next();
expectMetadataRequest(env, topicPartition, retryLeader);
env.kafkaClient().prepareResponseFrom(request -> request instanceof WriteTxnMarkersRequest, response, retryLeader);
AbortTransactionResult result = env.adminClient().abortTransaction(abortSpec);
assertNull(result.all().get());
}
}
Aggregations