You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Francesco Nigro (Jira)" <ji...@apache.org> on 2021/02/09 08:21:00 UTC

[jira] [Commented] (ARTEMIS-1891) Sending synchronization finished packet starves when thread pool is full

    [ https://issues.apache.org/jira/browse/ARTEMIS-1891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17281618#comment-17281618 ] 

Francesco Nigro commented on ARTEMIS-1891:
------------------------------------------

[~wy96f] I've created a new version of this change that would use the Netty's EventLoop instead of using a separate Executor; please take a look if it works for your use case ;) https://github.com/apache/activemq-artemis/pull/3392

> Sending synchronization finished packet starves when thread pool is full
> ------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1891
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1891
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.6.0
>            Reporter: Wei Yang
>            Priority: Critical
>             Fix For: 2.6.1, 2.7.0
>
>         Attachments: synchronization_timeout.stack
>
>
> After sending pages, the thread will hold the storage manager write lock and send synchronization finished packet(use the parent thread pool) to the backup node. At the same time, thread pool is full bcs they are waiting for the storage manager read lock to write the page or journal, leading to replication starting failure. Here we use io executor to send replicate packet to fix thread pool starvation problem.



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