Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.AssertionError: Cassandra daemon did not start within timeout

My Test Class :

public class NetworkSettingsDaoTest {

@Rule
public CassandraCQLUnit cassandraCQLUnit = new CassandraCQLUnit(new ClassPathCQLDataSet("simpleWithCreateKeyspace.cql"));
public static Session session;
public static NetworkSettingsDao networkSettingsDao;
@Before
public void init() throws ConfigurationException, TTransportException, IOException, InterruptedException{
    EmbeddedCassandraServerHelper.startEmbeddedCassandra(5600000L);
    //Thread.sleep(4*1000); //workaround for weak machine
    session = cassandraCQLUnit.getSession();
    networkSettingsDao = new NetworkSettingsDao();
}

@Test
public void should_have_started_and_execute_cql_script() throws Exception {
    ResultSet result = session.execute("select * from mytable WHERE id='myKey01'");
    assertThat(result.iterator().next().getString("value"), is("myValue01"));
}   
}

My simpleWithCreateKeyspace.cql file :

CREATE KEYSPACE NETWORKSETTINGS WITH replication={'class' : 'SimpleStrategy', 'replication_factor':1};
USE NETWORKSETTINGS;

CREATE TABLE STBDevice(
    KEY varchar,
    SETTINGS_COLUMN varchar,
    AMSIP varchar,
    PRIMARY KEY(KEY));

INSERT INTO STBDevice(KEY, SETTINGS_COLUMN,AMSIP) values('myKey01','myColumn1','myAMSIP1');

Exception :

java.lang.AssertionError: Cassandra daemon did not start within timeout at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:130) at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:85) at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:64) at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:56) at org.cassandraunit.BaseCassandraUnit.before(BaseCassandraUnit.java:28) at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:46) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

like image 881
Sat Avatar asked Apr 17 '26 03:04

Sat


2 Answers

In my case, the server ALWAYS started within the default 10 sec window until yesterday. Today, it takes 50 to 70 secs. No valid explanation. So, looks like the only option is to increase the timeout.

like image 125
justAnotherGuy Avatar answered Apr 19 '26 17:04

justAnotherGuy


Looks, It depends on the number of queries you fire on Cassandra.. If you have too many queries to run then you need to increase the timeout in EmbeddedCassandra annotation. @EmbeddedCassandra(timeout = 100000L)

like image 20
Kishorekumar Yakkala Avatar answered Apr 19 '26 16:04

Kishorekumar Yakkala



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!