[
https://issues.apache.org/jira/browse/CASSANDRA-2849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-2849:
--------------------------------------
Attachment: 2849-v2.txt
v2 adds column name decoding and moves the value to a debug log (presumably the
client knows what value it sent...)
> 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: 2849-v2.txt, 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