[
https://issues.apache.org/jira/browse/CASSANDRA-2849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13059221#comment-13059221
]
David Allsopp commented on CASSANDRA-2849:
------------------------------------------
On a related note, I just noticed that ByteBufferUtil.bytesToHex() is
unnecessarily slow - will raise a new issue for this.
> 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