In Cassandra 3.0 we have added new read and write failure exceptions, which are generated when the replicas immediately notify the coordinator of failures, see CASSANDRA-8592 and CASSANDRA-7886 for more details.
We would need the driver to support these new exceptions, you can refer to https://github.com/thobbs/python-driver/tree/CASSANDRA-8592 for a sample implementation.
Our primary reason for this request is to implement the dtests for these new exceptions, but I would imagine client applications would find them very useful too.
These new exceptions are only available in Cassandra 3.0.'
CASSANDRA-8528
Changes here: https://github.com/datastax/python-driver/pull/265
Testing techniques:
FunctionFailure:
Note: presently this wlll fail with the protocol version error (mentioned above), not the runtime error. The error response message is of the expected type.
Write: https://github.com/riptano/cassandra-dtest/pull/197/files#diff-208f0436638cde7933f69be9e9205e5cR60
Read: Need to get node to TombstoneOverwhelmingException state
https://github.com/apache/cassandra/blob/93f40ccf2ea319e83ddc1cd2cd89b1e64f684d5c/conf/cassandra.yaml#L566-L576
I'm not sure how to help on the protocol version error but for testing the write failures exception, you may be interested in using "-Dcassandra.test.fail_writes_ks="keyspace", where "keyspace" is the name of your keyspace.
Thanks. That version error will be resolved when they update the packaged java driver. In the mean time, it actually results int he same protocol message, so at least we can test the code path on the driver side.
Pull Request for tests opened. Assigning to Kishan for review.
Tests look good. Provided some minor comments/suggestions on the PR.