DataStax Help Center

OpsCenter 6.0 schema creation fails, cannot get schema agreement

Summary

Under certain conditions, OpsCenter fails to connect and initialize a cluster due to failing schema agreement. This prevents the user from monitoring the cluster in OpsCenter 6.0. 

Symptoms

After adding a cluster to OpsCenter, the schema creation fails with the following sample error in opscenterd.log:

2016-07-07 16:09:30,753 [cluster]  INFO: Creating OpsCenter keyspace with attributes {'strategy_options': {'replication_factor': '2'}, 'strategy_class': 'SimpleStrategy'} . (MainThread)
2016-07-07 16:09:30,824 [cluster] ERROR: Error when attempting to create OpsCenter schema: (SchemaAgreementFailed) Traceback (most recent call last):
  File "/usr/share/opscenter/lib/py/twisted/internet/defer.py", line 1122, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/share/opscenter/lib/py/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/share/opscenter/jython/Lib/site-packages/opscenterd/CassandraService.py", line 276, in maybeCreateSchema
  File "/usr/share/opscenter/lib/py/twisted/internet/defer.py", line 1122, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/share/opscenter/lib/py/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/share/opscenter/lib/py/twisted/internet/defer.py", line 1124, in _inlineCallbacks
    result = g.send(result)
  File "/usr/share/opscenter/jython/Lib/site-packages/opscenterd/WrappedDriver.py", line 194, in execute_schema_change
  File "/usr/share/opscenter/jython/Lib/site-packages/opscenterd/WrappedDriver.py", line 194, in execute_schema_change
SchemaAgreementFailed: Failure waiting for schema agreement after schema change CREATE KEYSPACE "OpsCenter" with REPLICATION ={ 'class' : 'SimpleStrategy', 'replication_factor' : 2 };, failed to complete within the timeout.
 (MainThread)

Cause

In some instances, nodes can have NULL records in their local system.peers table. In such instances, the DataStax Java driver never reach some nodes to accomplish schema agreement (defect ID JAVA-1202).

Workaround

Cleanup the gossip data in the nodes' local system.peers table. For details, see Purging gossip state on a node.

Solution

Later versions of OpsCenter will have an updated Java driver with the JAVA-1202 fix.

Click the "Follow" button below to be notified of updates to this article.

Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk