[ 
https://issues.apache.org/jira/browse/IGNITE-12873?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17083377#comment-17083377
 ] 

Alexey Goncharuk commented on IGNITE-12873:
-------------------------------------------

[~ktkale...@gridgain.com] I think that we need to handle the IP address 
{{0.0.0.0}} and any loopback IP specifically and still send the hostname if 
this particular IP is specified. Otherwise, other nodes will try to always 
connect to the local host, not to a remote node.

> Hosts names resolution takes place even if all nodes are configured via ip 
> addresses
> ------------------------------------------------------------------------------------
>
>                 Key: IGNITE-12873
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12873
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Tkalenko
>            Assignee: Kirill Tkalenko
>            Priority: Major
>             Fix For: 2.9
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> We got a problem: When connection with DNS was lost transactions processing 
> hanged up. This happened because IgniteUtils.toSocketAddresses resolves 
> hostName even if all nodes are configured via ip-addresses.
> {code:java}
> Thread [name=""utility-#432631%GRID%GridNodeName%"", id=992176, 
> state=RUNNABLE, blockCnt=1, waitCnt=16]
>  at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
>  at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
>  at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
>  at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
>  at java.net.InetAddress.getAllByName(InetAddress.java:1193)
>  at java.net.InetAddress.getAllByName(InetAddress.java:1127)
>  at java.net.InetAddress.getByName(InetAddress.java:1077)
>  at java.net.InetSocketAddress.<init>(InetSocketAddress.java:220)
>  at o.a.i.i.util.IgniteUtils.toSocketAddresses(IgniteUtils.java:8982)
>  at 
> o.a.i.spi.communication.tcp.TcpCommunicationSpi.nodeAddresses(TcpCommunicationSpi.java:3228)
>  at 
> o.a.i.spi.communication.tcp.TcpCommunicationSpi.nodeAddresses(TcpCommunicationSpi.java:3200)
>  at 
> o.a.i.spi.communication.tcp.TcpCommunicationSpi.createTcpClient(TcpCommunicationSpi.java:3291)
>  at 
> o.a.i.spi.communication.tcp.TcpCommunicationSpi.createNioClient(TcpCommunicationSpi.java:3027)
>  at 
> o.a.i.spi.communication.tcp.TcpCommunicationSpi.reserveClient(TcpCommunicationSpi.java:2907)
>  at 
> o.a.i.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:2750)
>  at 
> o.a.i.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:2709)
>  at o.a.i.i.managers.communication.GridIoManager.send(GridIoManager.java:1643)
>  at 
> o.a.i.i.managers.communication.GridIoManager.sendOrderedMessage(GridIoManager.java:1863)
>  at 
> o.a.i.i.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1873)
>  at 
> o.a.i.i.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1844)
>  at 
> o.a.i.i.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1826)
>  at 
> o.a.i.i.processors.continuous.GridContinuousProcessor.sendNotification(GridContinuousProcessor.java:1244)
>  at 
> o.a.i.i.processors.continuous.GridContinuousProcessor.addNotification(GridContinuousProcessor.java:1181)
>  at 
> o.a.i.i.processors.cache.query.continuous.CacheContinuousQueryHandler.onEntryUpdate(CacheContinuousQueryHandler.java:882)
>  at 
> o.a.i.i.processors.cache.query.continuous.CacheContinuousQueryHandler.access$600(CacheContinuousQueryHandler.java:85)
>  at 
> o.a.i.i.processors.cache.query.continuous.CacheContinuousQueryHandler$2.onEntryUpdated(CacheContinuousQueryHandler.java:429)
>  at 
> o.a.i.i.processors.cache.query.continuous.CacheContinuousQueryManager.onEntryUpdated(CacheContinuousQueryManager.java:400)
>  at 
> o.a.i.i.processors.cache.GridCacheMapEntry.innerSet(GridCacheMapEntry.java:1111)
>  at 
> o.a.i.i.processors.cache.transactions.IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:659)
>  at 
> o.a.i.i.processors.cache.distributed.dht.GridDhtTxLocalAdapter.localFinish(GridDhtTxLocalAdapter.java:796)
>  at 
> o.a.i.i.processors.cache.distributed.dht.GridDhtTxLocal.localFinish(GridDhtTxLocal.java:603)
>  at 
> o.a.i.i.processors.cache.distributed.dht.GridDhtTxLocal.finishTx(GridDhtTxLocal.java:475)
>  at 
> o.a.i.i.processors.cache.distributed.dht.GridDhtTxLocal.commitDhtLocalAsync(GridDhtTxLocal.java:532)
>  at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler.finishDhtLocal(IgniteTxHandler.java:1017)
>  at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:896)
>  at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler.processNearTxFinishRequest(IgniteTxHandler.java:852)
>  at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler.access$200(IgniteTxHandler.java:102)
>  at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler$3.apply(IgniteTxHandler.java:196)
>  at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler$3.apply(IgniteTxHandler.java:194)
>  at 
> o.a.i.i.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1077)
>  at 
> o.a.i.i.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:587)
>  at 
> o.a.i.i.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:386)
>  at 
> o.a.i.i.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:312)
>  at 
> o.a.i.i.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:102)
>  at 
> o.a.i.i.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:301)
>  at 
> o.a.i.i.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
>  at 
> o.a.i.i.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184)
>  at 
> o.a.i.i.managers.communication.GridIoManager.access$4200(GridIoManager.java:125)
>  at 
> o.a.i.i.managers.communication.GridIoManager$9.run(GridIoManager.java:1091)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
> {code}
> Solution:
> - Do not save hostname in node attributes, If localHost IP is set in the 
> configuration
> - Add JVM option for enabling "old" behaviour.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to