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 bt...@apache.org on 2019/06/26 03:28:49 UTC

[james-project] 09/28: JAMES-2794 Upgrade instructions

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit a0c2fe2df0215d3ad45b00829edd875604f6e64b
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Jun 18 14:03:15 2019 +0700

    JAMES-2794 Upgrade instructions
---
 upgrade-instructions.md | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/upgrade-instructions.md b/upgrade-instructions.md
index 95dbef6..6229179 100644
--- a/upgrade-instructions.md
+++ b/upgrade-instructions.md
@@ -17,6 +17,41 @@ Changes to apply between 3.3.x and 3.4.x will be reported here.
 Change list:
 
  - [Upgrade to ElasticSearch 6.3](#upgrade-to-elasticsearch-6.3)
+ 
+#### Enqueuing several times a mail with the same name
+
+Date: XX/06/2019
+
+SHA-1: XXXXX
+
+JIRA: https://issues.apache.org/jira/browse/JAMES-2794
+
+Concerned products: (experimental) RabbitMQ MailQueue
+
+RabbitMQ mail queue combines RabbitMQ with projections in Cassandra to offer advanced management capabilities expected from
+a mail queue (browse, delete, size, clear). In these projections, the mails are identified by there name. Thus enqueuing a
+mail that had already been processed will lead the given email to be considered already deleted and it will be discarded 
+and lost.
+
+This is an issue, as several other components build features around submitting a mail several time with the name. 
+
+For instance:
+
+ - MailRepository reprocessing
+ - RemoteDelivery bouncing under some configurations
+ - RecipientRewriteTable rewriting to a remote server
+
+We thus changed the table structure of RabbitMQ mail queue projections to be built around an EnqueueId. This additional 
+level of indirection allows several enqueues with the same name.
+
+Upgrade to the newest James server needs to be performed with an empty MailQueue.
+
+To do so:
+
+ - Given a distributed Guice James server
+ - Stop incoming traffic
+ - Monitor the mailQueues and wait them to be empty (spool & outgoing)
+ - Once empty, upgrade James server and re-enable incoming traffic.
 
 #### Upgrade to ElasticSearch 6.3
 


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