[
https://issues.apache.org/jira/browse/CASSANDRA-21540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Valery Baranov updated CASSANDRA-21540:
---------------------------------------
Description:
With enabled TDE:
{code:java}
transparent_data_encryption_options:
enabled: true {code}
Cassandra failed to start:
{code:java}
Exception (java.lang.AssertionError) encountered during startup: null
java.lang.AssertionError
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.createSegmentBuilder(AbstractCommitLogSegmentManager.java:127)
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.start(AbstractCommitLogSegmentManager.java:156)
at org.apache.cassandra.db.commitlog.CommitLog.start(CommitLog.java:148)
at
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273)
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:839)
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:993)
ERROR [main] 2026-07-29T10:02:55,512 CassandraDaemon.java:1020 - Exception
encountered during startup
java.lang.AssertionError: null
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.createSegmentBuilder(AbstractCommitLogSegmentManager.java:127)
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.start(AbstractCommitLogSegmentManager.java:156)
at org.apache.cassandra.db.commitlog.CommitLog.start(CommitLog.java:148)
at
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273)
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:839)
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:993)
{code}
*commitlog_disk_access_mode* not correct in *createSegmentBuilder* (value is
{*}mmap{*}, but should be {*}standard{*}):
{code:java}
private CommitLogSegment.Builder
createSegmentBuilder(CommitLog.Configuration config)
{
if (config.useEncryption())
{
assert config.diskAccessMode == DiskAccessMode.standard; {code}
Problem is *applyEncryptionContext()* loaded after resolving
*commitlog_disk_access_mode* in {*}applySimpleConfig() ->
initializeCommitLogDiskAccessMode() ->
resolveCommitLogWriteDiskAccessMode(){*}, when encryptionContext is not loaded
(null).
We need to change methods order: *applyEncryptionContext()* before
*applySimpleConfig().*
WA is also uncomment {*}commitlog_compression{*}:
{code:java}
commitlog_compression:
- class_name: LZ4Compressor {code}
but this only hides bug. And compressor is hardcoded in *EncryptionContext*
({*}ignored{*} from config):
{code:java}
compressor = LZ4Compressor.create(Collections.<String, String>emptyMap());
{code}
was:
With enabled TDE:
{code:java}
transparent_data_encryption_options:
enabled: true {code}
Cassandra failed to start:
{code:java}
Exception (java.lang.AssertionError) encountered during startup: null
java.lang.AssertionError
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.createSegmentBuilder(AbstractCommitLogSegmentManager.java:127)
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.start(AbstractCommitLogSegmentManager.java:156)
at org.apache.cassandra.db.commitlog.CommitLog.start(CommitLog.java:148)
at
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273)
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:839)
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:993)
ERROR [main] 2026-07-29T10:02:55,512 CassandraDaemon.java:1020 - Exception
encountered during startup
java.lang.AssertionError: null
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.createSegmentBuilder(AbstractCommitLogSegmentManager.java:127)
at
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.start(AbstractCommitLogSegmentManager.java:156)
at org.apache.cassandra.db.commitlog.CommitLog.start(CommitLog.java:148)
at
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273)
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:839)
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:993)
{code}
*commitlog_disk_access_mode* not correct in *createSegmentBuilder* (value is
{*}mmap{*}, but should be {*}standard{*}):
{code:java}
private CommitLogSegment.Builder
createSegmentBuilder(CommitLog.Configuration config)
{
if (config.useEncryption())
{
assert config.diskAccessMode == DiskAccessMode.standard; {code}
Problem is *applyEncryptionContext()* loaded after resolving
*commitlog_disk_access_mode* in {*}applySimpleConfig() ->
initializeCommitLogDiskAccessMode() ->
resolveCommitLogWriteDiskAccessMode(){*}, when encryptionContext is not loaded
(null).
We need to change methods order: *applyEncryptionContext()* before
*applySimpleConfig().*
WA is also uncomment {*}commitlog_compression{*}:
{code:java}
commitlog_compression:
- class_name: LZ4Compressor {code}
but this only hides bug. And compressor is hardcoded in EncryptionContext
({*}ignored{*} from config):
{code:java}
compressor = LZ4Compressor.create(Collections.<String, String>emptyMap());
{code}
> Startup fails when TDE is enabled
> ---------------------------------
>
> Key: CASSANDRA-21540
> URL: https://issues.apache.org/jira/browse/CASSANDRA-21540
> Project: Apache Cassandra
> Issue Type: Bug
> Reporter: Valery Baranov
> Assignee: Valery Baranov
> Priority: Normal
> Time Spent: 10m
> Remaining Estimate: 0h
>
> With enabled TDE:
> {code:java}
> transparent_data_encryption_options:
> enabled: true {code}
> Cassandra failed to start:
> {code:java}
> Exception (java.lang.AssertionError) encountered during startup: null
> java.lang.AssertionError
> at
> org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.createSegmentBuilder(AbstractCommitLogSegmentManager.java:127)
> at
> org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.start(AbstractCommitLogSegmentManager.java:156)
> at
> org.apache.cassandra.db.commitlog.CommitLog.start(CommitLog.java:148)
> at
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273)
> at
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:839)
> at
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:993)
> ERROR [main] 2026-07-29T10:02:55,512 CassandraDaemon.java:1020 - Exception
> encountered during startup
> java.lang.AssertionError: null
> at
> org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.createSegmentBuilder(AbstractCommitLogSegmentManager.java:127)
> at
> org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.start(AbstractCommitLogSegmentManager.java:156)
> at
> org.apache.cassandra.db.commitlog.CommitLog.start(CommitLog.java:148)
> at
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273)
> at
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:839)
> at
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:993)
> {code}
>
> *commitlog_disk_access_mode* not correct in *createSegmentBuilder* (value is
> {*}mmap{*}, but should be {*}standard{*}):
> {code:java}
> private CommitLogSegment.Builder
> createSegmentBuilder(CommitLog.Configuration config)
> {
> if (config.useEncryption())
> {
> assert config.diskAccessMode == DiskAccessMode.standard; {code}
> Problem is *applyEncryptionContext()* loaded after resolving
> *commitlog_disk_access_mode* in {*}applySimpleConfig() ->
> initializeCommitLogDiskAccessMode() ->
> resolveCommitLogWriteDiskAccessMode(){*}, when encryptionContext is not
> loaded (null).
> We need to change methods order: *applyEncryptionContext()* before
> *applySimpleConfig().*
> WA is also uncomment {*}commitlog_compression{*}:
> {code:java}
> commitlog_compression:
> - class_name: LZ4Compressor {code}
> but this only hides bug. And compressor is hardcoded in *EncryptionContext*
> ({*}ignored{*} from config):
> {code:java}
> compressor = LZ4Compressor.create(Collections.<String, String>emptyMap());
> {code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]