You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Erick Ramirez (JIRA)" <ji...@apache.org> on 2014/12/15 02:43:13 UTC
[jira] [Updated] (CASSANDRA-8478) sstableloader
NegativeArraySizeException when deserializing to build histograms
[ https://issues.apache.org/jira/browse/CASSANDRA-8478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Erick Ramirez updated CASSANDRA-8478:
-------------------------------------
Description:
When a customer attempts to load sstable data files copied from a production cluster, it returns the following exception:
{code}
$ sstableloader -d <ip> -p <rpc_port> -v <KS>/<CF>/
null
java.lang.NegativeArraySizeException
at org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer.deserialize(EstimatedHistogram.java:266)
at org.apache.cassandra.io.sstable.SSTableMetadata$SSTableMetadataSerializer.deserialize(SSTableMetadata.java:292)
at org.apache.cassandra.io.sstable.SSTableMetadata$SSTableMetadataSerializer.deserialize(SSTableMetadata.java:282)
at org.apache.cassandra.io.sstable.SSTableReader.openMetadata(SSTableReader.java:234)
at org.apache.cassandra.io.sstable.SSTableReader.openForBatch(SSTableReader.java:162)
at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:100)
at java.io.File.list(File.java:1155)
at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:67)
at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:121)
at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:66)
-pr,--principal kerberos principal
-k,--keytab keytab location
--ssl-keystore ssl keystore location
--ssl-keystore-password ssl keystore password
--ssl-keystore-type ssl keystore type
--ssl-truststore ssl truststore location
--ssl-truststore-password ssl truststore password
--ssl-truststore-type ssl truststore type
{code}
It appears to be failing on this line of code:
{code}
public EstimatedHistogram deserialize(DataInput dis) throws IOException
{
int size = dis.readInt();
long[] offsets = new long[size - 1]; <---- here
{code}
The same error is returned regardless of which data file is attempted. I suspect this may be due to corrupt data files or the way data is written that is not compatible with the sstableloader utility.
NOTE: Both source and target clusters are DSE 3.2.5.
was:
When a customer attempts to load sstable data files copied from a production cluster, it returns the following exception:
{code}
$ sstableloader -d <ip> -p <rpc_port> -v <KS>/<CF>/
null
java.lang.NegativeArraySizeException
at org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer.deserialize(EstimatedHistogram.java:266)
at org.apache.cassandra.io.sstable.SSTableMetadata$SSTableMetadataSerializer.deserialize(SSTableMetadata.java:292)
at org.apache.cassandra.io.sstable.SSTableMetadata$SSTableMetadataSerializer.deserialize(SSTableMetadata.java:282)
at org.apache.cassandra.io.sstable.SSTableReader.openMetadata(SSTableReader.java:234)
at org.apache.cassandra.io.sstable.SSTableReader.openForBatch(SSTableReader.java:162)
at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:100)
at java.io.File.list(File.java:1155)
at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:67)
at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:121)
at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:66)
-pr,--principal kerberos principal
-k,--keytab keytab location
--ssl-keystore ssl keystore location
--ssl-keystore-password ssl keystore password
--ssl-keystore-type ssl keystore type
--ssl-truststore ssl truststore location
--ssl-truststore-password ssl truststore password
--ssl-truststore-type ssl truststore type
{code}
It appears to be failing on this line of code:
{code}
public EstimatedHistogram deserialize(DataInput dis) throws IOException
{
int size = dis.readInt();
long[] offsets = new long[size - 1]; <---- here
{code}
The same error is returned regardless of which data file is attempted. I suspect this may be due to corrupt data files or the way data is written that is not compatible with the sstableloader utility.
> sstableloader NegativeArraySizeException when deserializing to build histograms
> -------------------------------------------------------------------------------
>
> Key: CASSANDRA-8478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8478
> Project: Cassandra
> Issue Type: Bug
> Components: Tools
> Reporter: Erick Ramirez
> Fix For: 1.2.15
>
>
> When a customer attempts to load sstable data files copied from a production cluster, it returns the following exception:
> {code}
> $ sstableloader -d <ip> -p <rpc_port> -v <KS>/<CF>/
> null
> java.lang.NegativeArraySizeException
> at org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer.deserialize(EstimatedHistogram.java:266)
> at org.apache.cassandra.io.sstable.SSTableMetadata$SSTableMetadataSerializer.deserialize(SSTableMetadata.java:292)
> at org.apache.cassandra.io.sstable.SSTableMetadata$SSTableMetadataSerializer.deserialize(SSTableMetadata.java:282)
> at org.apache.cassandra.io.sstable.SSTableReader.openMetadata(SSTableReader.java:234)
> at org.apache.cassandra.io.sstable.SSTableReader.openForBatch(SSTableReader.java:162)
> at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:100)
> at java.io.File.list(File.java:1155)
> at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:67)
> at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:121)
> at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:66)
> -pr,--principal kerberos principal
> -k,--keytab keytab location
> --ssl-keystore ssl keystore location
> --ssl-keystore-password ssl keystore password
> --ssl-keystore-type ssl keystore type
> --ssl-truststore ssl truststore location
> --ssl-truststore-password ssl truststore password
> --ssl-truststore-type ssl truststore type
> {code}
> It appears to be failing on this line of code:
> {code}
> public EstimatedHistogram deserialize(DataInput dis) throws IOException
> {
> int size = dis.readInt();
> long[] offsets = new long[size - 1]; <---- here
> {code}
> The same error is returned regardless of which data file is attempted. I suspect this may be due to corrupt data files or the way data is written that is not compatible with the sstableloader utility.
> NOTE: Both source and target clusters are DSE 3.2.5.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)