[ 
https://issues.apache.org/jira/browse/CASSANDRA-10985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15091393#comment-15091393
 ] 

sumit thakur commented on CASSANDRA-10985:
------------------------------------------

1. It is reproducible.
2. version 3.1
3. It is single node new cluster.
4. It happens while trying to read data using range slice (thrift client).
 
where column size : 100kb
no. of columns in each row = 3600
no. of rows in column family = 24

changes in yaml file :
1. thrift_framed_transport_size_in_mb = 1024 

Please suggest better approach to handle this case.

Thanks & Regards
Sumit 

> OOM during bulk read(slice query) operation
> -------------------------------------------
>
>                 Key: CASSANDRA-10985
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10985
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Observability
>         Environment: OS : Linux 6.5
> RAM : 126GB
> assign heap size: 8GB
>            Reporter: sumit thakur
>
> The thread java.lang.Thread @ 0x55000a4f0 Thrift:6 keeps local variables with 
> total size 16,214,953,728 (98.23%) bytes.
> The memory is accumulated in one instance of "java.lang.Thread" loaded by 
> "<system class loader>".
> The stacktrace of this Thread is available. See stacktrace.
> Keywords
> java.lang.Thread
> --------------------------------------------------------------------------------------
> Trace: 
> Thrift:6
>   at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:48)
>   at 
> org.apache.cassandra.utils.ByteBufferUtil.read(Ljava/io/DataInput;I)Ljava/nio/ByteBuffer;
>  (ByteBufferUtil.java:401)
>   at 
> org.apache.cassandra.utils.ByteBufferUtil.readWithVIntLength(Lorg/apache/cassandra/io/util/DataInputPlus;)Ljava/nio/ByteBuffer;
>  (ByteBufferUtil.java:339)
>   at 
> org.apache.cassandra.db.marshal.AbstractType.readValue(Lorg/apache/cassandra/io/util/DataInputPlus;)Ljava/nio/ByteBuffer;
>  (AbstractType.java:391)
>   at 
> org.apache.cassandra.db.rows.BufferCell$Serializer.deserialize(Lorg/apache/cassandra/io/util/DataInputPlus;Lorg/apache/cassandra/db/LivenessInfo;Lorg/apache/cassandra/config/ColumnDefinition;Lorg/apache/cassandra/db/SerializationHeader;Lorg/apache/cassandra/db/rows/SerializationHelper;)Lorg/apache/cassandra/db/rows/Cell;
>  (BufferCell.java:298)
>   at 
> org.apache.cassandra.db.rows.UnfilteredSerializer.readSimpleColumn(Lorg/apache/cassandra/config/ColumnDefinition;Lorg/apache/cassandra/io/util/DataInputPlus;Lorg/apache/cassandra/db/SerializationHeader;Lorg/apache/cassandra/db/rows/SerializationHelper;Lorg/apache/cassandra/db/rows/Row$Builder;Lorg/apache/cassandra/db/LivenessInfo;)V
>  (UnfilteredSerializer.java:453)
>   at 
> org.apache.cassandra.db.rows.UnfilteredSerializer.deserializeRowBody(Lorg/apache/cassandra/io/util/DataInputPlus;Lorg/apache/cassandra/db/SerializationHeader;Lorg/apache/cassandra/db/rows/SerializationHelper;IILorg/apache/cassandra/db/rows/Row$Builder;)Lorg/apache/cassandra/db/rows/Row;
>  (UnfilteredSerializer.java:431)
>   at 
> org.apache.cassandra.db.rows.UnfilteredSerializer.deserialize(Lorg/apache/cassandra/io/util/DataInputPlus;Lorg/apache/cassandra/db/SerializationHeader;Lorg/apache/cassandra/db/rows/SerializationHelper;Lorg/apache/cassandra/db/rows/Row$Builder;)Lorg/apache/cassandra/db/rows/Unfiltered;
>  (UnfilteredSerializer.java:360)
>   at 
> org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer$1.computeNext()Lorg/apache/cassandra/db/rows/Unfiltered;
>  (UnfilteredRowIteratorSerializer.java:217)
>   at 
> org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer$1.computeNext()Ljava/lang/Object;
>  (UnfilteredRowIteratorSerializer.java:210)
>   at org.apache.cassandra.utils.AbstractIterator.hasNext()Z 
> (AbstractIterator.java:47)
>   at org.apache.cassandra.db.transform.BaseRows.hasNext()Z (BaseRows.java:108)
>   at 
> org.apache.cassandra.db.LegacyLayout$3.computeNext()Lorg/apache/cassandra/db/LegacyLayout$LegacyCell;
>  (LegacyLayout.java:658)
>   at org.apache.cassandra.db.LegacyLayout$3.computeNext()Ljava/lang/Object; 
> (LegacyLayout.java:640)
>   at org.apache.cassandra.utils.AbstractIterator.hasNext()Z 
> (AbstractIterator.java:47)
>   at 
> org.apache.cassandra.thrift.CassandraServer.thriftifyColumns(Lorg/apache/cassandra/config/CFMetaData;Ljava/util/Iterator;)Ljava/util/List;
>  (CassandraServer.java:112)
>   at 
> org.apache.cassandra.thrift.CassandraServer.thriftifyPartition(Lorg/apache/cassandra/db/rows/RowIterator;ZZI)Ljava/util/List;
>  (CassandraServer.java:250)
>   at 
> org.apache.cassandra.thrift.CassandraServer.getSlice(Ljava/util/List;ZILorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;)Ljava/util/Map;
>  (CassandraServer.java:270)
>   at 
> org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(Ljava/lang/String;Ljava/util/List;Lorg/apache/cassandra/thrift/ColumnParent;ILorg/apache/cassandra/thrift/SlicePredicate;Lorg/apache/cassandra/thrift/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;)Ljava/util/Map;
>  (CassandraServer.java:566)
>   at 
> org.apache.cassandra.thrift.CassandraServer.multiget_slice(Ljava/util/List;Lorg/apache/cassandra/thrift/ColumnParent;Lorg/apache/cassandra/thrift/SlicePredicate;Lorg/apache/cassandra/thrift/ConsistencyLevel;)Ljava/util/Map;
>  (CassandraServer.java:348)
>   at 
> org.apache.cassandra.thrift.Cassandra$Processor$multiget_slice.getResult(Lorg/apache/cassandra/thrift/Cassandra$Iface;Lorg/apache/cassandra/thrift/Cassandra$multiget_slice_args;)Lorg/apache/cassandra/thrift/Cassandra$multiget_slice_result;
>  (Cassandra.java:3716)
>   at 
> org.apache.cassandra.thrift.Cassandra$Processor$multiget_slice.getResult(Ljava/lang/Object;Lorg/apache/thrift/TBase;)Lorg/apache/thrift/TBase;
>  (Cassandra.java:3700)
>   at 
> org.apache.thrift.ProcessFunction.process(ILorg/apache/thrift/protocol/TProtocol;Lorg/apache/thrift/protocol/TProtocol;Ljava/lang/Object;)V
>  (ProcessFunction.java:39)
>   at 
> org.apache.thrift.TBaseProcessor.process(Lorg/apache/thrift/protocol/TProtocol;Lorg/apache/thrift/protocol/TProtocol;)Z
>  (TBaseProcessor.java:39)
>   at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run()V 
> (CustomTThreadPoolServer.java:204)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V
>  (ThreadPoolExecutor.java:1142)
>   at java.util.concurrent.ThreadPoolExecutor$Worker.run()V 
> (ThreadPoolExecutor.java:617)
>   at java.lang.Thread.run()V (Thread.java:745)
> ------------------------------------------------------------------------------



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to