[jboss-jira] [JBoss JIRA] (JGRP-2406) MERGE3 not working with TCP using ForkJoinPool

Olivier Peyrusse (Jira) issues at jboss.org
Mon Mar 16 04:09:03 EDT 2020


    [ https://issues.redhat.com/browse/JGRP-2406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13999156#comment-13999156 ] 

Olivier Peyrusse commented on JGRP-2406:
----------------------------------------

Hello Bela Ban,

although I am not familiar yet with the internal machinery of JGroups, that was also my interpretation of the problem. I saw that your tasks were blocked on a Conditional, which is not supported by the FJP. You could always detect the use of a FJP, try using {{ManagedBlocker}}, etc, but it is cumbersome.
I agree with your opinion that a FJP may not be useful to JGroups, at least for this part. In the project I submitted, it was enabled by one of my colleagues and I think the reason for this choice is that our own product heavily relies on FJPs. So seeing the option must have triggered an habit and then it was enabled.

As I said, I reverted that change and the application was working like a charm.
Thanks for the investigation.

> MERGE3 not working with TCP using ForkJoinPool
> ----------------------------------------------
>
>                 Key: JGRP-2406
>                 URL: https://issues.redhat.com/browse/JGRP-2406
>             Project: JGroups
>          Issue Type: Bug
>    Affects Versions: 4.1.8
>            Reporter: Olivier Peyrusse
>            Assignee: Bela Ban
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: logs.tgz, project.zip, timeline.txt
>
>
> With JDK11, using the TCP protocol with the ForkJoinPool is causing constant failures of MERGE3.
> I consistently observed the following, from the point of view of a member M
>  - M asks for other coordinator views. It contacts A and B
>  - A and B send their views
>  - M waits and timeouts for receiving views and abort the merge
>  - immediately after aborting the merge, M process messages containing the views of A and B.
> In  [^timeline.txt], you will see the extracts for logs from the various members at play.
> After many experiments, the one parameter causing this issue is in the TCP protocol.
> {code:xml}
> <TCP
>    ...
>    thread_pool.use_fork_join_pool="true" />
> {code}
> Setting {{thread_pool.use_fork_join_pool}} to true repeatedly produces the problem, while using {{thread_pool.use_fork_join_pool}} with false works fine.
> Project details: 
>  - as tested within Kubernetes, this project uses KUBE_PING as its discovery protocol
>  - to understand the reason for the failed merges, I created the protocol MERGE4, that is MERGE3 with additional logs.
>  -  [^logs.tgz] contains all logs from the various members involved in the test.



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list