Description
Running cassandra-stress when SSL is enabled gives the following error and does not finish executing:
cassandra-stress write n=1000000
Exception in thread "main" java.lang.RuntimeException: org.apache.thrift.transport.TTransportException: Frame size (352518912) larger than max length (15728640)!
at org.apache.cassandra.stress.settings.StressSettings.getRawThriftClient(StressSettings.java:144)
at org.apache.cassandra.stress.settings.StressSettings.getRawThriftClient(StressSettings.java:110)
at org.apache.cassandra.stress.settings.SettingsSchema.createKeySpacesThrift(SettingsSchema.java:111)
at org.apache.cassandra.stress.settings.SettingsSchema.createKeySpaces(SettingsSchema.java:59)
at org.apache.cassandra.stress.settings.StressSettings.maybeCreateKeyspaces(StressSettings.java:205)
at org.apache.cassandra.stress.StressAction.run(StressAction.java:55)
at org.apache.cassandra.stress.Stress.main(Stress.java:109)
I was able to reproduce this issue consistently via the following steps:
1) Spin up 3 node cassandra cluster running 2.1.8
2) Perform cassandra-stress write n=1000000
3) Everything works!
4) Generate keystore and truststore for each node in the cluster and distribute appropriately
5) Modify cassandra.yaml on each node to enable SSL:
client_encryption_options:
enabled: true
keystore: /<appropriate directory>
- require_client_auth: false
- Set trustore and truststore_password if require_client_auth is true
truststore: /<appropriate directory>
truststore_password: <appropriate password> - More advanced defaults below:
protocol: ssl
6) Restart each node.
7) Perform cassandra-stress write n=1000000
8) Get Frame Size error, cassandra-stress fails
This may be related to CASSANDRA-9325.