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

Alexey Gidaspov updated IGNITE-14448:
-------------------------------------
    Release Note: Fixed failure to connect to node leading to hanging 
connection future if paired connections are used

> Failure to connect to node leads to hanging connection future if paired 
> connections are used
> --------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-14448
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14448
>             Project: Ignite
>          Issue Type: Bug
>          Components: networking
>    Affects Versions: 2.10
>            Reporter: Semyon Danilov
>            Assignee: Semyon Danilov
>            Priority: Major
>             Fix For: 2.11
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> {code:java}
> if ((CommunicationSpi<?>)spi instanceof TcpCommunicationSpi)
>             getTcpCommunicationSpi().setConnectionRequestor(invConnHandler);
>        if (connRequestor != null) {
> ...
>            if (isPairedConnection(node, tcpCommSpi))
>                throw new IgniteSpiException("Inverse connection protocol 
> doesn't support paired connections");{code}
> Turns out this exception is not handled property and connection future is 
> never done. Then, striped pool threads wait forever on reserveClient() and 
> cluster grinds to halt.This happens in versions which have 
> communication-via-discovery and when usePairedConnections=true.
> {code:java}
> [12:06:18,110][SEVERE][sys-stripe-0-#1][TcpCommunicationSpi] Failed to send 
> message to remote node [node=TcpDiscoveryNode 
> [id=54ddcf8b-3e41-4efe-bb9d-8a0369e7b893, consistentId=54ddcf8b-3e4
> 1-4efe-bb9d-8a0369e7b893, addrs=ArrayList [127.0.0.1, 172.22.229.21], 
> sockAddrs=HashSet [/127.0.0.1:0, 
> ip-172-22-229-21.ec2.internal/172.22.229.21:0], discPort=0, order=47, 
> intOrder=47, lastExchangeTime=1603983940522, loc=false, 
> ver=8.7.25#20200910-sha1:b580d9fd, isClient=true], msg=GridIoMessage [plc=2, 
> topic=TOPIC_CACHE, topicOrd=8, ordered=false, timeout=0, skipOnTimeout=f
> alse, msg=GridDhtAtomicSingleUpdateRequest [key=KeyCacheObjectImpl [part=24, 
> val=23576, hasValBytes=true], val=com.dream11.ignite.model.GetRoundSummaryRes 
> [idHash=69226443, hash=580815760,roundId=23576, dataSource=MYSQL, 
> sparkJobStatus=COMPLETED], prevVal=null, 
> super=GridDhtAtomicAbstractUpdateRequest [onRes=false, nearNodeId=null, 
> nearFutId=0, flags=near]], connIdx=-1]]
> class org.apache.ignite.spi.IgniteSpiException: Inverse connection protocol 
> doesn't support paired connections
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager$TcpCommunicationInverseConnectionHandler.request(GridIoManager.java:3564)
> at 
> org.apache.ignite.spi.communication.tcp.internal.ConnectionClientPool.handleUnreachableNodeException(ConnectionClientPool.java:365)
> at 
> org.apache.ignite.spi.communication.tcp.internal.ConnectionClientPool.reserveClient(ConnectionClientPool.java:256)
>  
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:1132)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:1083)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:1814)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic(GridIoManager.java:1930)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1257)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicAbstractUpdateFuture.sendDhtRequests(GridDhtAtomicAbstractUpdateFuture
> {code}



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

Reply via email to