Aleksey Plekhanov created IGNITE-11670:
------------------------------------------
Summary: Java thin client: Queries are inconsistent in case of
failover
Key: IGNITE-11670
URL: https://issues.apache.org/jira/browse/IGNITE-11670
Project: Ignite
Issue Type: Bug
Components: thin client
Reporter: Aleksey Plekhanov
When a thin client does failover and switches to a new server, open cursors
become inconsistent and silently returns the wrong result.
Reproducer:
{code:java}
public void testQueryFailover() throws Exception {
try (LocalIgniteCluster cluster = LocalIgniteCluster.start(1);
IgniteClient client = Ignition.startClient(new
ClientConfiguration()
.setAddresses(cluster.clientAddresses().iterator().next()))
) {
ObjectName mbeanName =
U.makeMBeanName(Ignition.allGrids().get(0).name(), "Clients",
ClientListenerProcessor.class.getSimpleName());
ClientProcessorMXBean mxBean =
MBeanServerInvocationHandler.newProxyInstance(
ManagementFactory.getPlatformMBeanServer(), mbeanName,
ClientProcessorMXBean.class, true);
ClientCache<Integer, Integer> cache = client.createCache("cache");
cache.put(0, 0);
cache.put(1, 1);
Query<Cache.Entry<Integer, String>> qry = new ScanQuery<Integer,
String>().setPageSize(1);
try (QueryCursor<Cache.Entry<Integer, String>> cur =
cache.query(qry)) {
int cnt = 0;
for (Iterator<Cache.Entry<Integer, String>> it =
cur.iterator(); it.hasNext(); it.next()) {
cnt++;
if (cnt == 1)
mxBean.dropAllConnections();
}
assertEquals(2, cnt);
}
}
}
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)