debezium / debezium/dbz

Debezium Cassandra Connector v3.0.1 does not work on Cassandra 4 [DBZ-8404]

Open
#57 0 comments 0 reactions 0 assignees View on GitHub
component/cassandra-connector migrated-from-jira type/bug
Dominant language
HTML
Stars
6
Forks
8
Avg merge
2d 19h
Merged PRs (30d)
1

Description

Migrated from [DBZ-8404](https://issues.redhat.com/browse/DBZ-8404)

In order to make your issue reports as actionable as possible, please provide the following information, depending on the issue type.
h1. Bug report

For bug reports, provide this information, please:
h2. What Debezium connector do you use and what version?

3.0.1 with Cassandra 4.0.14
h2. What is the connector configuration?

Running on JDK 17
h2. What is the captured database version and mode of deployment?

(E.g. on-premises, with a specific cloud provider, etc.)

Cassandra 4.0.14 - AWS
h2. What behavior do you expect?

The connector should be able to start
h2. What behavior do you see?

The Connector does not start, it outputs the following error
{code:java}
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]: Exception in thread "main" java.lang.AssertionError: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.io.FileDescriptor sun.nio.ch.FileChannelImpl.fd accessible: module java.base does not "opens sun.nio.ch" to unnamed module @225129c
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.utils.FBUtilities.getProtectedField(FBUtilities.java:824)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.utils.NativeLibrary.(NativeLibrary.java:86)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.utils.UUIDGen.hash(UUIDGen.java:403)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.utils.UUIDGen.makeNode(UUIDGen.java:381)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.utils.UUIDGen.makeClockSeqAndNode(UUIDGen.java:314)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.utils.UUIDGen.(UUIDGen.java:53)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.schema.TableId.generate(TableId.java:52)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.schema.TableMetadata$Builder.build(TableMetadata.java:742)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.db.virtual.VirtualSchemaKeyspace$VirtualKeyspaces.(VirtualSchemaKeyspace.java:53)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.db.virtual.VirtualSchemaKeyspace$VirtualKeyspaces.(VirtualSchemaKeyspace.java:42)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.db.virtual.VirtualSchemaKeyspace.(VirtualSchemaKeyspace.java:39)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.db.virtual.VirtualSchemaKeyspace.(VirtualSchemaKeyspace.java:35)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.service.ClientState.(ClientState.java:75)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.cql3.QueryProcessor$InternalStateInstance.(QueryProcessor.java:138)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.cql3.QueryProcessor$InternalStateInstance.(QueryProcessor.java:132)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.cql3.QueryProcessor.internalQueryState(QueryProcessor.java:192)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:389)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:422)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.schema.SchemaKeyspace.query(SchemaKeyspace.java:1225)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:844)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:836)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.schema.Schema.loadFromDisk(Schema.java:132)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at io.debezium.connector.cassandra.CassandraConnectorTask$Cassandra4SchemaLoader.load(CassandraConnectorTask.java:27)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at io.debezium.connector.cassandra.CassandraConnectorContext.(CassandraConnectorContext.java:49)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at io.debezium.connector.cassandra.CassandraConnectorTaskTemplate.start(CassandraConnectorTaskTemplate.java:111)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at io.debezium.connector.cassandra.CassandraConnectorTaskTemplate.run(CassandraConnectorTaskTemplate.java:129)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at io.debezium.connector.cassandra.CassandraConnectorTaskTemplate.main(CassandraConnectorTaskTemplate.java:65)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at io.debezium.connector.cassandra.CassandraConnectorTask.main(CassandraConnectorTask.java:42)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]: Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.io.FileDescriptor sun.nio.ch.FileChannelImpl.fd accessible: module java.base does not "opens sun.nio.ch" to unnamed module @225129c
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         at org.apache.cassandra.utils.FBUtilities.getProtectedField(FBUtilities.java:819)
Nov 13 23:06:36 ip-10-1-165-27 debezium-connector-cassandra[3916]:         ... 27 more {code}
Please note - it does start when running with Cassandra 5
h2. Do you see the same behaviour using the latest released Debezium version?

(Ideally, also verify with latest Alpha/Beta/CR version)

3.0.1 is the latest, so yes
h2. Do you have the connector logs, ideally from start till finish?

(You might be asked later to provide [DEBUG/TRACE|https://debezium.io/documentation/reference/stable/operations/logging.html] level log)

Yes - [^debezium4.log]
h2. How to reproduce the issue using our [tutorial|https://github.com/debezium/debezium-examples/tree/main/tutorial] deployment?

Have not tried

Contributor guide

Open the contributing guide

Research direction

Start at io.debezium.connector.cassandra.CassandraConnectorTask.java:27, where Cassandra 4 schema loading begins, then follow CassandraConnectorContext.java:49 and the stack trace through Cassandra's FBUtilities reflection failure on JDK 17. Reproduce with Debezium 3.0.1, Cassandra 4.0.14, and JDK 17; done means the connector starts successfully without the InaccessibleObjectException.

Written by the indexing model from the issue text.

Assessment

Tech stack
cassandra, java
Domain
backend, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.