Question

We just published a change to the schema for our DSE SOLR cluster. We tried reloading the core on this node and it couldn't load the core. We then drained and stopped DSE. on startup we get the following exception:

 INFO 23:25:52,673 Configuring index commit log for linkcurrent_search.content
java.lang.RuntimeException: javax.management.InstanceAlreadyExistsException: com.datastax.    bdp:type=CommitLog-linkcurrent_search.content
    at com.datastax.bdp.util.JMXUtil.registerMBean(JMXUtil.java:36)
    at com.datastax.bdp.cassandra.index.solr.AbstractSolrSecondaryIndex.init(AbstractSolrSecondaryIndex.    java:183)
    at org.apache.cassandra.db.index.SecondaryIndexManager.addIndexedColumn(SecondaryIndexManager.    java:267)
    at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:271)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:378)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:350)
    at org.apache.cassandra.db.Table.initCf(Table.java:329)
    at org.apache.cassandra.db.Table.<init>(Table.java:272)
    at org.apache.cassandra.db.Table.open(Table.java:109)
    at org.apache.cassandra.db.Table.open(Table.java:87)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:276)
    at com.datastax.bdp.server.DseDaemon.setup(DseDaemon.java:351)
    at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:381)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:212)
Caused by: javax.management.InstanceAlreadyExistsException: com.datastax.bdp:type=CommitLog-    linkcurrent_search.content
    at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(    DefaultMBeanServerInterceptor.java:1898)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(    DefaultMBeanServerInterceptor.java:966)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(    DefaultMBeanServerInterceptor.java:900)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor    .java:324)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
    at com.datastax.bdp.util.JMXUtil.registerMBean(JMXUtil.java:32)
    ... 17 more
Cannot load daemon

UPDATE

Just tried moving the solr.data directory out of the way to see if the issue was there and that didn't help.

I also tried moving the commitlog directory as well, but no dice.

The node will start up if I disable SOLR.

Was it helpful?

Solution

When upgrading to the latest DSE 3.2.x, you'll get a conflict when adding new columns/fields as the name of the class implementing the Solr secondary index changed between versions: this caused your problems above.

DSE 3.2.2 will fix this issue, but in the meantime you can follow the given steps:

  1. Restart the node with Solr disabled.
  2. Describe your schema via CQLSH and identify the added columns with related Cassandra secondary indexes: you'll notice class names differ from already existent indexes.
  3. Drop each new index and create again with exactly the same name, but changing the class name to match the old one.
  4. Restart with Solr enabled and everything should work.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top