These are chat archives for atomix/atomix

Sep 2018
Sep 05 2018 01:31

I meet a strange Exception today when starting a cluster. It happens here:

           try {
            } catch (Exception e) {
                System.out.println("error found!");

And the log is like this:

error found!
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: No cluster specified
    at java.util.concurrent.CompletableFuture.encodeThrowable(
    at java.util.concurrent.CompletableFuture.completeThrowable(
    at java.util.concurrent.CompletableFuture.uniCompose(
    at java.util.concurrent.CompletableFuture$UniCompose.tryFire(
    at java.util.concurrent.CompletableFuture.postComplete(
    at java.util.concurrent.CompletableFuture.complete(
    at io.atomix.utils.concurrent.OrderedFuture.lambda$wrap$0(
    at io.atomix.utils.concurrent.OrderedFuture.complete(
    at io.atomix.utils.concurrent.Futures.lambda$null$3(
    at io.atomix.utils.concurrent.ThreadPoolContext.lambda$new$0(
    at java.util.concurrent.Executors$
Caused by: java.lang.IllegalArgumentException: No cluster specified
    at io.atomix.protocols.raft.impl.DefaultRaftClient.connect(
    at io.atomix.protocols.raft.partition.impl.RaftPartitionClient.start(
    at io.atomix.protocols.raft.partition.RaftPartitionGroup.lambda$join$1(
    at io.atomix.protocols.raft.partition.RaftPartitionGroup.join(
    at io.atomix.primitive.partition.impl.DefaultPartitionService.lambda$null$6(
    at io.atomix.primitive.partition.impl.DefaultPartitionService.lambda$start$8(
    at java.util.concurrent.CompletableFuture.uniCompose(
    ... 42 more
I have no idea where is the mistake.
My code is like this:
        String server = "server" + port;
        List<String> servers = -> "server" + p).collect(Collectors.toList());

        AtomixBuilder builder = Atomix.builder();
        builder.withMemberId(server).withAddress("", port)
                        .withDataDirectory(new File("mngdir", server))
                        .withDataDirectory(new File("datadir", server))
        Atomix atomix =;

        CommunicationProxy proxy = new CommunicationProxy(server);
        CommunicationHandler handler = new CommunicationHandler(server);
        ExecutorService executor = Executors.newCachedThreadPool();
        atomix.getCommunicationService().subscribe("proxy", proxy, executor);
        atomix.getCommunicationService().subscribe("handle", handler, executor);

        atomix.getMembershipService().addListener(event -> System.out.println(event.toString()));

        System.out.println("trying to start " + server + " on port " + port + ".");
        CompletableFuture<Void> starting = atomix.start();
Sep 05 2018 02:04
Hi there! I am evaluating Atomix features at the moment and have a question. According to security policies in our company all traffic between services should be encrypted. So the question is does Atomix support traffic encryption in using protocols (Raft, Primary-backup, Gossip) ?
Sep 05 2018 02:31
This may help. atomix/atomix#794 @oastashev
Sep 05 2018 02:43
yep, i saw issue... but i'm not sure... does that changes applicable for all protocols ?
Luca Burgazzoli
Sep 05 2018 05:34

has anyone got some time to look at this ?

am I doing something wrong ?

Sep 05 2018 07:29

This may help. atomix/atomix#794 @oastashev

i got it. netty is responsible for all communication. thank you a lot. )

Luca Burgazzoli
Sep 05 2018 14:36
hy everyone, I'm having an issue with spring-boot and a custom discovery provider
when running is does fail with com.github.lburgazzoli.atomix.boot.node.autoconfigure.AtomixNodeDiscoveryProviderType cannot be cast to io.atomix.utils.NamedType
but not in all the cases, only sometimes
it fails inside ClasspathScanningAtomixRegistry
is there any way to disable classpath scanning ?