[ https://issues.apache.org/jira/browse/IGNITE-11670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Plekhanov updated IGNITE-11670: --------------------------------------- Affects Version/s: 2.7 > 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 > Affects Versions: 2.7 > Reporter: Aleksey Plekhanov > Priority: Major > > 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)