You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Benoit Tellier (Jira)" <se...@james.apache.org> on 2024/06/03 13:28:00 UTC

[jira] [Closed] (JAMES-4027) Make all queues on Rabbitmq quorum queue when option enabled

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

Benoit Tellier closed JAMES-4027.
---------------------------------
    Resolution: Fixed

> Make all queues on Rabbitmq quorum queue when option enabled
> ------------------------------------------------------------
>
>                 Key: JAMES-4027
>                 URL: https://issues.apache.org/jira/browse/JAMES-4027
>             Project: James Server
>          Issue Type: Bug
>          Components: eventbus, Queue, rabbitmq
>            Reporter: Tran Hong Quan
>            Priority: Major
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Today, when the quorum option is enabled, only some queues are quorum queues, not all (e.g. event bus notification queues and Task Manager's termination queues).
> On a James deployment where we use quorum queues and RabbitMQ cluster 3 nodes, when a RabbitMQ node outages, James can not be fault tolerant against it.
> I tried to reproduce what happens and here is my theory: 
> The RabbitMQ node that stores the notification queues is down 
> -> James can not publish messages to RabbitMQ and causes e.g. IMAP SELECT, STORE, APPEND, UNSELECT ... commands to fail 
> -> James keeps retrying the publish failures (retry for Group registration which seems to rely on the classic queue too) and queues other IMAP requests.
> -> The IMAP server queue is full and the exception `The IMAP server has reached its maximum capacity` is thrown.
> -> James IMAP becomes a zombie and cascading failures.
> James needs to be more fault-tolerant in this case.
> I propose we apply quorum queues for all the queues when `
> quorum.queues.enable=true` so the queues are still available even when a RabbitMQ node is down, and help James keep functions well.
> We did a POC [here  |https://github.com/apache/james-project/pull/2191]and the full quorum queues helped James be more fault tolerant as expected.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org