You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Kirill Tkalenko (Jira)" <ji...@apache.org> on 2020/04/08 09:07:00 UTC

[jira] [Updated] (IGNITE-12873) Hosts names resolution takes place even if all nodes are configured via ip addresses

     [ https://issues.apache.org/jira/browse/IGNITE-12873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kirill Tkalenko updated IGNITE-12873:
-------------------------------------
    Release Note: Not filling ATTR_HOST_NAMES in TcpCommunication if set the IP address as a local address, adding JVM option IGNITE_TCP_COMM_SET_ATTR_HOST_NAMES for backward compatibility.

> 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)