Igor created IGNITE-26384:
-----------------------------
Summary: Failed to process replica request when node left cluster
Key: IGNITE-26384
URL: https://issues.apache.org/jira/browse/IGNITE-26384
Project: Ignite
Issue Type: Bug
Components: replication ai3
Affects Versions: 3.1
Environment: 3 nodes cluster running locally
Reporter: Igor
Attachments: server_logs.zip
*Steps to reproduce:*
1. Start cluster of 3 nodes.
2. Create zone:
{code:java}
create zone if not exists "cluster_failover_3" (replicas 3, auto scale up 10,
auto scale down 10) storage profiles ['default_aipersist']{code}
3. Create 10 tables:
{code:java}
create TABLE failoverTest00(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest01(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest02(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest03(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest04(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest05(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest06(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest07(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest08(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3"
create TABLE failoverTest09(k1 INTEGER not null, k2 INTEGER not null, v1
VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key (k1, k2))
ZONE "cluster_failover_3" {code}
4. Insert 100 rows into every table using `executeBatch`
5. Kill node1.
6. Connect to node0 to insert data via JDBC.
*Expected:*
Successfully connected and inserted data.
*Actual:*
Exception on client side:
{code:java}
java.sql.BatchUpdateException: Failed to process replica request
[replicaGroupId=ZonePartitionIdMessageImpl [partitionId=23, zoneId=20]]
at
org.apache.ignite.internal.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:158)
at
org.gridgain.ai3tests.tests.failover.ClusterFailoverTestBase.fillTables(ClusterFailoverTestBase.java:256)
at
org.gridgain.ai3tests.tests.failover.ClusterFailover3NodesTest.singleKillAddDataAndCheckNodeReturns(ClusterFailover3NodesTest.java:162)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787)
at
org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:479)
at
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at
org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestMethod(InvocationInterceptor.java:129)
at
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112)
at
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94)
at
org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at
org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestMethod(InvocationInterceptor.java:129)
at
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112)
at
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94)
at
org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at
org.junit.jupiter.api.AssertTimeoutPreemptively.lambda$submitTask$3(AssertTimeoutPreemptively.java:95)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833) {code}
Server logs:
[^server_logs.zip]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)