[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Evgeny Stanilovsky updated IGNITE-27652:
Labels: 2.18-review IEP-132 ise (was: IEP-132 ise)
> 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: 2.18-review, IEP-132, ise
> Fix For: 2.18
>
> Attachments: Reproducer.patch, image.png
>
> Time Spent: 3h
> 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)
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 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
was:
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.
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
> Research the assertion on discovery message writting
>
>
> Key: IGNITE-27652
> URL: https://issues.apache.org/jira/browse/IGNITE-27652
> Project: Ignite
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
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
was:
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.
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.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}
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
> Research the assertion on discovery message writting
>
>
> Key: IGNITE-27652
> URL: https://issues.apache.org/ji
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
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.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}
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
was:
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.
In order ti 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.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}
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
> Research the assertion on discovery message writting
>
>
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ilya Shishkov updated IGNITE-27652:
---
Affects Version/s: 2.18
> 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
>
>
> 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.
> In order ti 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.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}
> 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)
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ilya Shishkov updated IGNITE-27652:
---
Labels: IEP-132 ise (was: IEP-132)
> 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: Critical
> Labels: IEP-132, ise
> Fix For: 2.18
>
> Attachments: Reproducer.patch, image.png
>
>
> 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.
> In order ti 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.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}
> 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)
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
In order ti 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.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}
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
was:
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.
In order ti 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.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}
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
> Research the assertion on discovery message writting
>
>
>
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
In order ti 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.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}
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
was:
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.
In order ti 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.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}
Problem is at least here [1]. Such calls should become thread-safe.
> Research the assertion on discovery message writting
>
>
> Key: IGNITE-27652
> URL: https://issues.apache.org/jira/browse/IGNITE-27652
> Project: Ignite
> Issue Type: Task
>
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ilya Shishkov updated IGNITE-27652:
---
Fix Version/s: 2.18
> 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: Critical
> Labels: IEP-132
> Fix For: 2.18
>
> Attachments: Reproducer.patch, image.png
>
>
> 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.
> In order ti 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.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}
> Problem is at least here [1]. Such calls should become thread-safe.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
In order ti reproduce just run {{IgniteClientReconnectCollectionsTest}}.
{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.
*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}
> 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,
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ilya Shishkov updated IGNITE-27652:
---
Priority: Critical (was: Major)
> 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: Critical
> Labels: IEP-132
> Attachments: Reproducer.patch, image.png
>
>
> 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.
> In order ti 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.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}
> Problem is at least here [1]. Such calls should become thread-safe.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
In order ti 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.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}
Problem is at least here [1]. Such calls should become thread-safe.
was:
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.
In order ti 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.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}
> 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 `DirectM
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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 patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
In order ti 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.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.
*Update:*
Attached patch [^Reproducer.patch] demonstrates, that {{TcpDicoveryIoSession}},
which is thread unsafe, is concurrently used from different threads.
In order ti reproduce just run {{IgniteClientReconnectCollectionsTest}}.
{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}
> 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 work
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[
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.b
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[ https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ilya Shishkov updated IGNITE-27652: --- Attachment: Reproducer.patch > 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. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[ https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vladimir Steshin updated IGNITE-27652: -- Description: Tcp discovery client worker may fire an assertion in `DirectMessageState`. See the stacktrace attached. (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 >Priority: Major > Labels: IEP-132 > Attachments: image.png > > > Tcp discovery client worker may fire an assertion in `DirectMessageState`. > See the stacktrace attached. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-27652) Research the assertion on discovery message writting
[ https://issues.apache.org/jira/browse/IGNITE-27652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vladimir Steshin updated IGNITE-27652: -- Summary: Research the assertion on discovery message writting (was: Research the assertion on message writting) > 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 >Priority: Major > Labels: IEP-132 > Attachments: image.png > > > Tcp discovery client worker may fire an assertion in > `DirectMessageState`. See the stacktrace attached. -- This message was sent by Atlassian Jira (v8.20.10#820010)
