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 "Matthieu Baechler (JIRA)" <se...@james.apache.org> on 2019/01/28 09:23:00 UTC

[jira] [Commented] (JAMES-2653) Starting 2 Cassandra james server concurrently fails

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

Matthieu Baechler commented on JAMES-2653:
------------------------------------------

I would make the schema creation a job/task that can be triggered with webadmin.

It means that we should start James in 2 steps:
 # starts relevant webadmin parts
 # if schema is ok, starts everything else

> Starting 2 Cassandra james server concurrently fails
> ----------------------------------------------------
>
>                 Key: JAMES-2653
>                 URL: https://issues.apache.org/jira/browse/JAMES-2653
>             Project: James Server
>          Issue Type: Bug
>          Components: cassandra, guice
>            Reporter: Tellier Benoit
>            Priority: Major
>
> PR introduce a concurrentTable creation that fails: https://github.com/linagora/james-project/pull/2139
> ```
> java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.RuntimeException: com.datastax.driver.core.exceptions.ServerError: An unexpected error occurred server side on localhost/127.0.0.1:32818: java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch (found b0736470-22b8-11e9-b4fb-f58bd8d3766a; expected b07168a0-22b8-11e9-b4fb-f58bd8d3766a)
> 	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> 	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
> 	at org.apache.james.util.concurrency.ConcurrentTestRunner.assertNoException(ConcurrentTestRunner.java:160)
> 	at org.apache.james.util.concurrency.ConcurrentTestRunner.runSuccessfullyWithin(ConcurrentTestRunner.java:177)
> 	at org.apache.james.util.concurrency.ConcurrentTestRunner$Builder.runSuccessfullyWithin(ConcurrentTestRunner.java:83)
> 	at org.apache.james.backends.cassandra.init.CassandraTableManagerConcurrentTest.initializeTableShouldCreateAllTheTables(CassandraTableManagerConcurrentTest.java:61)
> ```
> The 2 connections do not succeed to synchronize themselves upon table creation, leading to an invalid state...
> We need to ensure that when we start james server concurrently, everything go smooth.
> Table creation synchorinsation seems hard. Does this mean we need to externalize table creation, that would be needed to be run prior running James servers?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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