> When I manually inspected this byte array, it seems hold all details 
> correctly, except the super-column name, causing it to fetch the entire wide 
> row.
What is the CF definition and what is the exact query you are sending? 
There does not appear to be anything obvious in the QueryPath serde for 1.0.7

Cheers

-----------------
Aaron Morton
Freelance Cassandra Consultant
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 28/03/2013, at 10:54 AM, Ravikumar Govindarajan 
<ravikumar.govindara...@gmail.com> wrote:

> VM Settings are
> -javaagent:./../lib/jamm-0.2.5.jar -XX:+UseThreadPriorities 
> -XX:ThreadPriorityPolicy=42 -Xms8G -Xmx8G -Xmn800M 
> -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC 
> -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 
> -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly
> 
> error stack was containing 2 threads for the same key, stalling on digest 
> query
> 
> The below bytes which I referred is the actual value of "_body" variable in 
> org.apache.cassandra.net.Message object got from the heap dump.
> 
> As I understand from the code, ReadVerbHandler will deserialize this "_body" 
> variable into a SliceByNamesReadCommand object.
> 
> When I manually inspected this byte array, it seems hold all details 
> correctly, except the super-column name, causing it to fetch the entire wide 
> row.
> 
> --
> Ravi
> 
> On Thu, Mar 28, 2013 at 8:36 AM, aaron morton <aa...@thelastpickle.com> wrote:
>> We started receiving OOMs in our cassandra grid and took a heap dump
> What are the JVM settings ? 
> What was the error stack? 
> 
>> I am pasting the serialized byte array of SliceByNamesReadCommand, which 
>> seems to be corrupt on issuing certain digest queries.
> 
> Sorry I don't follow what you are saying here. 
> Can you can you enable DEBUG logging and identify the behaviour you think is 
> incorrect ?
> 
> Cheers
> 
> -----------------
> Aaron Morton
> Freelance Cassandra Consultant
> New Zealand
> 
> @aaronmorton
> http://www.thelastpickle.com
> 
> On 28/03/2013, at 4:15 AM, Ravikumar Govindarajan 
> <ravikumar.govindara...@gmail.com> wrote:
> 
>> We started receiving OOMs in our cassandra grid and took a heap dump. We are 
>> running version 1.0.7 with LOCAL_QUORUM from both reads/writes.
>> 
>> After some analysis, we kind of identified the problem, with 
>> SliceByNamesReadCommand, involving a single Super-Column. This seems to be 
>> happening only in digest query and not during actual reads.
>> 
>> I am pasting the serialized byte array of SliceByNamesReadCommand, which 
>> seems to be corrupt on issuing certain digest queries.
>> 
>>              //Type is SliceByNamesReadCommand
>>              body[0] = (byte)1;
>>              
>>              //This is a digest query here.
>>              body[1] = (byte)1;
>> 
>>                 //Table-Name from 2-8 bytes
>> 
>>                 //Key-Name from 9-18 bytes
>> 
>>                 //QueryPath deserialization here
>>              
>>                      //CF-Name from 19-30 bytes
>> 
>>                     //Super-Col-Name from 31st byte onwards, but gets 
>> corrupt as found in heap dump
>> 
>>                     //body[32-37] = 0, body[38] = 1, body[39] = 0.  This 
>> causes the SliceByNamesDeserializer to mark both ColName=NULL and 
>> SuperColName=NULL, fetching entire wide-row!!!
>> 
>>                    //Actual super-col-name starts only from byte 40, whereas 
>> it should have started from 31st byte itself
>> 
>> Has someone already encountered such an issue? Why is the super-col-name not 
>> correctly de-serialized during digest query.
>> 
>> --
>> Ravi
>> 
> 
> 

Reply via email to