[ 
https://issues.apache.org/jira/browse/CASSANDRA-21540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated CASSANDRA-21540:
----------------------------------------
    Test and Documentation Plan: The test is attached in comments
                         Status: Patch Available  (was: Open)

> Startup fails when TDE is enabled
> ---------------------------------
>
>                 Key: CASSANDRA-21540
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21540
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Feature/Encryption
>            Reporter: Valery Baranov
>            Assignee: Valery Baranov
>            Priority: Normal
>             Fix For: 6.x, 7.x, 5.x
>
>          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]

Reply via email to