[ https://issues.apache.org/jira/browse/IGNITE-3153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15320535#comment-15320535 ]
Anton Vinogradov edited comment on IGNITE-3153 at 6/8/16 1:21 PM: ------------------------------------------------------------------ I wonder how can happen context destroy and then reconnect, except race at node stop. Seems that correct solution is to remove if (!initGuard.compareAndSet(true, false)) return; at onSpiContextDestroyed This will fix the problem, I think. was (Author: avinogradov): I wonder how can happen context destroy and then reconnect, except race at node stop. Seems that correct solution is to remove if (!initGuard.compareAndSet(true, false)) return; at onSpiContextDestroyed This will fix problem, I think. > TcpDiscoveryZookeeperIpFinder doesn't properly handle client reconnections > -------------------------------------------------------------------------- > > Key: IGNITE-3153 > URL: https://issues.apache.org/jira/browse/IGNITE-3153 > Project: Ignite > Issue Type: Bug > Components: general > Affects Versions: 1.5.0.final > Reporter: Valentin Kulichenko > Assignee: Anton Vinogradov > Fix For: 1.7 > > > The exception below is possible when client reconnects and ZooKeeper IP > finder is used. Most likely this is caused by the fact that {{initGuard}} is > flipped back to {{false}} when the context is destroyed and new curator > instance is not created during the reconnect. > This should be fixed and test coverage for this scenario should be improved. > {noformat} > 2016-05-16 12:00:59,096 5786 ERROR > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi Runtime error caught > during grid runnable execution: IgniteSpiThread > [name=tcp-client-disco-reconnector-#5%Default%] > java.lang.IllegalStateException: Cannot be started more than once > at > org.apache.curator.framework.imps.CuratorFrameworkImpl.start(CuratorFrameworkImpl.java:237) > ... > at > org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder.init(TcpDiscoveryZookeeperIpFinder.java:144) > at > org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder.getRegisteredAddresses(TcpDiscoveryZookeeperIpFinder.java:169) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.registeredAddresses(TcpDiscoverySpi.java:1603) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.resolvedAddresses(TcpDiscoverySpi.java:1552) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl.joinTopology(ClientImpl.java:475) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl.access$900(ClientImpl.java:118) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl$Reconnector.body(ClientImpl.java:1175) > at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)