cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Allsopp (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-2849) InvalidRequestException when validating column data includes entire column value
Date Sun, 03 Jul 2011 15:23:21 GMT


David Allsopp commented on CASSANDRA-2849:

A lot of classes use ByteBufferUtil.bytesToHex(), often for logging and exceptions, so may
make more sense to add a method there for getting a truncated hex string.

> InvalidRequestException when validating column data includes entire column value
> --------------------------------------------------------------------------------
>                 Key: CASSANDRA-2849
>                 URL:
>             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:


View raw message