InvalidRequestException when validating column data includes entire column value
--------------------------------------------------------------------------------
Key: CASSANDRA-2849
URL: https://issues.apache.org/jira/browse/CASSANDRA-2849
Project: Cassandra
Issue Type: Bug
Components: Core
Affects Versions: 0.8.1
Reporter: David Allsopp
Priority: Minor
Fix For: 0.8.2
If the column value fails to validate, then
ThriftValidation.validateColumnData() calls bytesToHex() on the entire column
value and puts this string in the Exception. Since the value may be up to 2GB,
this is potentially a lot of extra memory. The value is likely to be logged
(and presumably returned to the thrift client over the network?). This could
cause a lot of slowdown or an unnecessary OOM crash, and is unlikely to be
useful (the client has access to the full value anyway if required for
debugging).
Also, the reason for the exception (extracted from the MarshalException) is
printed _after_ the data, so if there's any truncation in the logging system at
any point, the reason will be lost.
The reason should be displayed before the column value, and the column value
should be truncated in the Exception message.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira