[
https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18055214#comment-18055214
]
Ignite TC Bot commented on IGNITE-27652:
----------------------------------------
{panel:title=Branch: [pull/12663/head] Base: [master] : No blockers
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/12663/head] Base: [master] : No new tests
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel}
[TeamCity *--> Run :: All*
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=8826011&buildTypeId=IgniteTests24Java8_RunAll]
> Research the assertion on discovery message writting
> ----------------------------------------------------
>
> Key: IGNITE-27652
> URL: https://issues.apache.org/jira/browse/IGNITE-27652
> Project: Ignite
> Issue Type: Task
> Affects Versions: 2.18
> Reporter: Vladimir Steshin
> Assignee: Ilya Shishkov
> Priority: Critical
> Labels: IEP-132, ise
> Fix For: 2.18
>
> Attachments: Reproducer.patch, image.png
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> Tcp discovery client worker may fire an assertion in {{DirectMessageState}}.
> See the stacktrace attached.
> *Update:*
> Attached patch [^Reproducer.patch] demonstrates, that
> {{TcpDicoveryIoSession}}, which is thread unsafe, is concurrently used from
> different threads (at least {{#serializeMessage}}).
> In order to reproduce just run {{IgniteClientReconnectCollectionsTest}}.
> {code:title=RingMessageWorker stack}
> at
> org.apache.ignite.spi.discovery.tcp.TcpDiscoveryIoSession.serializeMessage(TcpDiscoveryIoSession.java:297)
> at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.sendMessageToClients(ServerImpl.java:3393)
> at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.sendMessageAcrossRing(ServerImpl.java:3449)
> at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:5423)
> at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddedMessage(ServerImpl.java:5019)
> at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:3287)
> at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2959)
> {code}
> {code:title=ClientMessageWorker stack}
> 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}
> Problem is at least here [1]. Such calls should become thread-safe.
> Links:
> #
> https://github.com/apache/ignite/blob/38188bb3e7867c695c58f27f9d00a3af81ba78cc/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L3393
--
This message was sent by Atlassian Jira
(v8.20.10#820010)