-
Enhancement
-
Resolution: Done
-
Major
-
None
-
None
-
False
-
-
False
Bug report
What Debezium connector do you use and what version?
Debezium Cassandra Connector (version v3.1.0.Final latest)
What behavior do you expect?
When an invalid field.exclude.list format is provided, the connector should:
1. Validate the format before processing
2. Provide a clear error message explaining that the format must be "keyspace.table.column"
3. Not crash with ArrayIndexOutOfBoundsException
What behavior do you see?
The connector crashes with ArrayIndexOutOfBoundsException when processing field exclude list entries:
commitLogSegmentId=1743683152895} errored out io.debezium.DebeziumException: Error occurred while processing commit log /var/lib/cassandra/cdc_raw/CommitLog-7-1743683152895.log at io.debezium.connector.cassandra.CommitLogIdxParser.processCommitLog(CommitLogIdxParser.java:144) at io.debezium.connector.cassandra.CommitLogIdxParser.parse(CommitLogIdxParser.java:97) at io.debezium.connector.cassandra.CommitLogIdxParser.process(CommitLogIdxParser.java:116) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: io.debezium.DebeziumException: Failed to process PartitionUpdate [testkeyspace.client_activity_new] key=org_12345:46d29385-0b57-4d24-9152-34984e807de6 partition_deletion=deletedAt=-9223372036854775808, localDeletion=2147483647 columns=[[] | [browser city country_code country_name created_at device event_name event_value event_value_enc hrs1 hrs3 hrs6 ip item_url_sha1 language last_updated_at os page_url referred_by source state_code state_name]] Row[info=[ts=1744636688769504 ttl=604800, let=1745241488] ]: created_at_uuid=e87e0ec0-1932-11f0-934b-0b815daadb22 | [browser=Chrome ts=1744636688769504 ttl=604800 ldt=1745241488], [city=New York ts=1744636688769504 ttl=604800 ldt=1745241488], [country_code=US ts=1744636688769504 ttl=604800 ldt=1745241488], [country_name=United States ts=1744636688769504 ttl=604800 ldt=1745241488], [created_at=2025-04-14T13:18:08.812Z ts=1744636688769504 ttl=604800 ldt=1745241488], [device=Mobile ts=1744636688769504 ttl=604800 ldt=1745241488], [event_name=event_LfHlPq0Z_1744636684144 ts=1744636688769504 ttl=604800 ldt=1745241488], [event_value=some ts=1744636688769504 ttl=604800 ldt=1745241488], [event_value_enc=ENC1234567890 ts=1744636688769504 ttl=604800 ldt=1745241488], [hrs1=12 ts=1744636688769504 ttl=604800 ldt=1745241488], [hrs3=36 ts=1744636688769504 ttl=604800 ldt=1745241488], [hrs6=72 ts=1744636688769504 ttl=604800 ldt=1745241488], [ip=192.168.1.1 ts=1744636688769504 ttl=604800 ldt=1745241488], [item_url_sha1=abcdef1234567890 ts=1744636688769504 ttl=604800 ldt=1745241488], [language=en ts=1744636688769504 ttl=604800 ldt=1745241488], [last_updated_at=2025-04-14T13:18:08.812Z ts=1744636688769504 ttl=604800 ldt=1745241488], [os=Android ts=1744636688769504 ttl=604800 ldt=1745241488], [page_url=https://example.com/home ts=1744636688769504 ttl=604800 ldt=1745241488], [referred_by=https://google.com ts=1744636688769504 ttl=604800 ldt=1745241488], [source=Google ts=1744636688769504 ttl=604800 ldt=1745241488], [state_code=NY ts=1744636688769504 ttl=604800 ldt=1745241488], [state_name=New York ts=1744636688769504 ttl=604800 ldt=1745241488] at CommitLog-7-1743683152895.log:1959952 for table testkeyspace.client_activity_new. at io.debezium.connector.cassandra.Cassandra4CommitLogReadHandlerImpl.handleMutation(Cassandra4CommitLogReadHandlerImpl.java:265) at org.apache.cassandra.db.commitlog.CommitLogReader.readMutation(CommitLogReader.java:477) at org.apache.cassandra.db.commitlog.CommitLogReader.readSection(CommitLogReader.java:396) at org.apache.cassandra.db.commitlog.CommitLogReader.readCommitLogSegment(CommitLogReader.java:243) at io.debezium.connector.cassandra.Cassandra4CommitLogSegmentReader.readCommitLogSegment(Cassandra4CommitLogSegmentReader.java:28) at io.debezium.connector.cassandra.CommitLogIdxParser.processCommitLog(CommitLogIdxParser.java:138) ... 6 common frames omitted Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2 at io.debezium.connector.cassandra.FieldFilterSelector$Field.<init>(FieldFilterSelector.java:68) at io.debezium.connector.cassandra.FieldFilterSelector.selectFieldFilter(FieldFilterSelector.java:33) at io.debezium.connector.cassandra.Filters.getFieldFilter(Filters.java:26) at io.debezium.connector.cassandra.RecordMaker.createRecord(RecordMaker.java:61) at io.debezium.connector.cassandra.RecordMaker.insert(RecordMaker.java:33) at io.debezium.connector.cassandra.Cassandra4CommitLogReadHandlerImpl.handleRowModifications(Cassandra4CommitLogReadHandlerImpl.java:429) at io.debezium.connector.cassandra.Cassandra4CommitLogReadHandlerImpl.handleRowIterator(Cassandra4CommitLogReadHandlerImpl.java:321) at io.debezium.connector.cassandra.Cassandra4CommitLogReadHandlerImpl.process(Cassandra4CommitLogReadHandlerImpl.java:306) at io.debezium.connector.cassandra.Cassandra4CommitLogReadHandlerImpl.handleMutation(Cassandra4CommitLogReadHandlerImpl.java:262) ... 11 common frames omitted
Do you see the same behaviour using the latest released Debezium version?
Yes, this issue is reproducible in the latest version.
Do you have the connector logs, ideally from start till finish?
Yes, provided above in the "What behavior do you see?" section. Can provide DEBUG level logs if needed.
How to reproduce the issue using our tutorial deployment?
1. Set up Debezium Cassandra connector following the tutorial
2. Configure the connector with any of these invalid field.exclude.list formats:
- Missing keyspace: "client_activity_new.event_value"
- Missing column: "devcswigzo.client_activity_new"
- Empty parts: "devcswigzo..event_value"
3. Start the connector
4. The connector will crash with ArrayIndexOutOfBoundsException
The correct format should be:
"field.exclude.list": "devcswigzo.client_activity_new.event_value"
- is duplicated by
-
DBZ-8930 ArrayIndexOutOfBoundsException in Cassandra Connector's FieldFilterSelector when parsing field exclude list
-
- Closed
-
-
DBZ-8931 ArrayIndexOutOfBoundsException in Cassandra Connector's FieldFilterSelector when parsing field exclude list
-
- Closed
-
-
DBZ-8932 ArrayIndexOutOfBoundsException in Cassandra Connector's FieldFilterSelector when parsing field exclude list
-
- Closed
-
-
DBZ-8934 ArrayIndexOutOfBoundsException in Cassandra Connector's FieldFilterSelector when parsing field exclude list
-
- Closed
-