Description
This master build did fail because JMAP filtering failed for one of the emails.
This test sends 100 emails to a single recipient. Single recipients have their filters on a single Primary Key, and filters are managed by a Cassandra Lightweight transaction (refer to JAMES-3435 for background regarding LightWeight transactions in the project). Apparrently this is enough to create contention!
05:02:05.113 [ERROR] o.a.j.m.i.ProcessorImpl - Exception calling org.apache.james.jmap.mailet.filter.JMAPFiltering: Cassandra timeout during read query at consistency SERIAL (1 responses were required but only 0 replica responded) com.datastax.driver.core.exceptions.ReadTimeoutException: Cassandra timeout during read query at consistency SERIAL (1 responses were required but only 0 replica responded) at com.datastax.driver.core.exceptions.ReadTimeoutException.copy(ReadTimeoutException.java:124)
This results in one email not making it to its destination...
org.awaitility.core.ConditionTimeoutException: Assertion condition defined as a lambda expression in org.apache.james.utils.TestIMAPClient expected: 100L but was : 99L within 10 seconds.
There is little things we can do regarding LWT performance (since Cassandra 3.11.10 even SERIAL reads implies to commit an empty update!).
However, as 'filtering' is (in my opinion at least) not critical - my phylosophy would be "don't loose emails - even if that means some features could not be run...".
As such I propose to ignore errors arising upon JMAPFiltering - this would also make the above mentionned test stable.
Attachments
Issue Links
- links to