Error instantiating snitch class 'org.apache.cassandra.locator.PropertyFileSnitch' [DBZ-1987]
- Dominant language
- HTML
- Stars
- 6
- Forks
- 8
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 1
Description
Migrated from [DBZ-1987](https://issues.redhat.com/browse/DBZ-1987)
When Cassandra Cluster is configured to use PropertyFileSnitch, dbz connector is unable to start and end up with the following exception:
{quote}Exception in thread "main" org.apache.cassandra.exceptions.ConfigurationException: Error instantiating snitch class 'org.apache.cassandra.locator.PropertyFileSnitch'.
at org.apache.cassandra.utils.FBUtilities.construct(FBUtilities.java:596)
at org.apache.cassandra.utils.FBUtilities.construct(FBUtilities.java:574)
at org.apache.cassandra.config.DatabaseDescriptor.createEndpointSnitch(DatabaseDescriptor.java:1045)
at org.apache.cassandra.config.DatabaseDescriptor.applySnitch(DatabaseDescriptor.java:969)
at org.apache.cassandra.config.DatabaseDescriptor.toolInitialization(DatabaseDescriptor.java:192)
at org.apache.cassandra.config.DatabaseDescriptor.toolInitialization(DatabaseDescriptor.java:157)
at io.debezium.connector.cassandra.CassandraConnectorContext.loadDdlFromDisk(CassandraConnectorContext.java:64)
at io.debezium.connector.cassandra.CassandraConnectorContext.(CassandraConnectorContext.java:36)
at io.debezium.connector.cassandra.CassandraConnectorTask.run(CassandraConnectorTask.java:72)
at io.debezium.connector.cassandra.CassandraConnectorTask.main(CassandraConnectorTask.java:61)
Caused by: org.apache.cassandra.exceptions.ConfigurationException: Unable to read cassandra-topology.properties
at org.apache.cassandra.locator.PropertyFileSnitch.reloadConfiguration(PropertyFileSnitch.java:153)
at org.apache.cassandra.locator.PropertyFileSnitch.(PropertyFileSnitch.java:70)
at org.apache.cassandra.locator.PropertyFileSnitch.(PropertyFileSnitch.java:65)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at org.apache.cassandra.utils.FBUtilities.construct(FBUtilities.java:581)
... 9 more
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at org.apache.cassandra.locator.PropertyFileSnitch.reloadConfiguration(PropertyFileSnitch.java:149)
... 17 more
{quote}
According to the message {quote}" Unable to read cassandra-topology.properties"{quote}, It seems like dbz can't find the config file which should be under /etc/cassandra/cassandra-topology.properties
Contributor guide
Research direction
Start at CassandraConnectorContext.loadDdlFromDisk and CassandraConnectorTask, then trace the PropertyFileSnitch failure and its attempt to read /etc/cassandra/cassandra-topology.properties. Confirm the connector can start with Cassandra configured to use PropertyFileSnitch without the reported exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cassandra, java
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100