[
https://issues.apache.org/jira/browse/CASSANDRA-2849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Allsopp updated CASSANDRA-2849:
-------------------------------------
Attachment: cassandra-2849.diff
Attached diff moves the reason for the exception before the data, and truncates
the column value data in the exception to 64K.
Unable to test this properly today since working on a fresh Windows box over
the weekend and unable to get build working in Eclipse 8-(
> 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
>
> Attachments: cassandra-2849.diff
>
>
> 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