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

Ilya Shishkov updated IGNITE-27652:
-----------------------------------
    Description: 
Tcp discovery client worker may fire an assertion in `DirectMessageState`. See 
the stacktrace attached.

*Update:*
Attached reproducer ( [^Reproducer.patch] ) demonstrates, that 
{{TcpDicoveryIoSession}}, which is thread unsafe, is concurrently used from 
different threads.

{code|title=RingMessageWorker stack}
        at 
org.apache.ignite.spi.discovery.tcp.TcpDiscoveryIoSession.serializeMessage(TcpDiscoveryIoSession.java:297)
 ~[classes/:?]
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.sendMessageToClients(ServerImpl.java:3393)
 ~[classes/:?]
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.sendMessageAcrossRing(ServerImpl.java:3449)
 ~[classes/:?]
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:5423)
 ~[classes/:?]
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddedMessage(ServerImpl.java:5019)
 ~[classes/:?]
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:3287)
 ~[classes/:?]
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2959)
 ~[classes/:?]
{code}

{code|title=ClientMessageWorker stack}
        at 
org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:6840)
        at 
org.apache.ignite.spi.discovery.tcp.TcpDiscoveryIoSession.serializeMessage(TcpDiscoveryIoSession.java:300)
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$ClientMessageWorker.processMessage(ServerImpl.java:7866)
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$ClientMessageWorker.processMessage(ServerImpl.java:7766)
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:8163)
        at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
        at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:8094)
        at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:58)]]
{code}

  was:Tcp discovery client worker may fire an assertion in 
`DirectMessageState`. See the stacktrace attached.


> Research the assertion on discovery message writting
> ----------------------------------------------------
>
>                 Key: IGNITE-27652
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27652
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Vladimir Steshin
>            Assignee: Ilya Shishkov
>            Priority: Major
>              Labels: IEP-132
>         Attachments: Reproducer.patch, image.png
>
>
> Tcp discovery client worker may fire an assertion in `DirectMessageState`. 
> See the stacktrace attached.
> *Update:*
> Attached reproducer ( [^Reproducer.patch] ) demonstrates, that 
> {{TcpDicoveryIoSession}}, which is thread unsafe, is concurrently used from 
> different threads.
> {code|title=RingMessageWorker stack}
>       at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoveryIoSession.serializeMessage(TcpDiscoveryIoSession.java:297)
>  ~[classes/:?]
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.sendMessageToClients(ServerImpl.java:3393)
>  ~[classes/:?]
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.sendMessageAcrossRing(ServerImpl.java:3449)
>  ~[classes/:?]
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:5423)
>  ~[classes/:?]
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddedMessage(ServerImpl.java:5019)
>  ~[classes/:?]
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:3287)
>  ~[classes/:?]
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2959)
>  ~[classes/:?]
> {code}
> {code|title=ClientMessageWorker stack}
>       at 
> org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:6840)
>       at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoveryIoSession.serializeMessage(TcpDiscoveryIoSession.java:300)
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$ClientMessageWorker.processMessage(ServerImpl.java:7866)
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$ClientMessageWorker.processMessage(ServerImpl.java:7766)
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:8163)
>       at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
>       at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:8094)
>       at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:58)]]
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to