You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Manu Chadha <ma...@hotmail.com> on 2020/06/13 16:24:34 UTC

ServerError: java.lang.AssertionError on running Docker container with mounted data directory

I am running Cassandra Docker image on my Windows 10 following the steps here -https://hub.docker.com/_/cassandra

Specifically about the section - Where to store data - I have started the Images as follows


container 1

    docker run  -v C:\Users\manuc\Documents\manu\dockertest\dockerdata:/var/lib/cassandra --network cassandra-net -p 9042:9042 --name cassandra1 cassandra_image_id

container 2

     docker run  -v C:\Users\manuc\Documents\manu\dockertest\dockerdata:/var/lib/cassandra --network cassandra-net --name cassandra2  -e CASSANDRA_SEEDS=cassandra1 cassandra_image_id

Then I start Bash and cqlsh to container 1 to create keyspace and tables -

    docker exec -it container-id  bash

    CREATE KEYSPACE myKS WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'} ;

cqlsh> CREATE TABLE myKS.users (
   ...     bucket int,
   ...     email text,
   ...     authprovider text,
   ...     firstname text,
   ...     lastname text,
   ...     confirmed boolean,
   ...     hasher text,
   ...     id uuid,
   ...     password text,
   ...     salt text,
   ...     PRIMARY KEY ((bucket, email), authprovider, firstname, lastname)
   ... );
cqlsh>
cqlsh> use myKS;
cqlsh:codingjedi> insert into users (bucket, email,authprovider, firstname, lastname, confirmed, hasher,id,password, salt) values (1,'m@m.com','ap','fn','ln',false,'h',uuid(),'p','s');

When I run the Insert query, I get error `java.lang.AssertionError`

The error on `Cassandra` console is

    ERROR [Native-Transport-Requests-2] 2020-06-13 16:06:46,704 Message.java:693 - Unexpected exception during request; channel = [id: 0x60052791, L:/127.0.0.1:9042 - R:/127.0.0.1:34818]
    java.lang.AssertionError: null
            at org.apache.cassandra.locator.TokenMetadata.firstTokenIndex(TokenMetadata.java:1065) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.locator.TokenMetadata.firstToken(TokenMetadata.java:1079) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.locator.AbstractReplicationStrategy.getNaturalEndpoints(AbstractReplicationStrategy.java:107) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.service.StorageService.getNaturalEndpoints(StorageService.java:3825) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:1074) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:621) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:851) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:439) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:425) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:225) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:256) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:241) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:116) ~[apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:566) [apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:410) [apache-cassandra-3.11.4.jar:3.11.4]
            at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.44.Final.jar:4.0.44.Final]
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.0.44.Final.jar:4.0.44.Final]
            at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35) [netty-all-4.0.44.Final.jar:4.0.44.Final]
            at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:348) [netty-all-4.0.44.Final.jar:4.0.44.Final]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_222]
            at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) [apache-cassandra-3.11.4.jar:3.11.4]
            at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:114) [apache-cassandra-3.11.4.jar:3.11.4]
            at java.lang.Thread.run(Thread.java:748) [na:1.8.0_222]

What is causing this error and how can I solve this error?

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10


Re: ServerError: java.lang.AssertionError on running Docker container with mounted data directory

Posted by Erick Ramirez <er...@datastax.com>.
I haven't validated the rest of your docker config but what stood out to me
is that you are using the same directory for both containers. You can't
share the same location -- they have to be unique.

Try using something like C:\Users\manuc\Documents\manu\container1\dockerdata
 and C:\Users\manuc\Documents\manu\container2\dockerdata instead. Cheers!

>