[
https://issues.apache.org/jira/browse/IGNITE-26384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Pereslegin updated IGNITE-26384:
--------------------------------------
Summary: Failed to process replica request when node left cluster (using
JDBC) (was: Failed to process replica request when node left cluster)
> Failed to process replica request when node left cluster (using JDBC)
> ---------------------------------------------------------------------
>
> 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
> Assignee: Pavel Pereslegin
> Priority: Major
> Labels: ignite-3
> 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)