[
https://issues.apache.org/jira/browse/CASSANDRA-13264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Esken updated CASSANDRA-13264:
----------------------------------------
Description:
sstabledump can fail with NullPointerException, when not all files are present
on Disk. This behavior is frequently present on Cassandra nodes with a high
write-throughput and much disk I/O. It looks like Cassandra writes the Data
file fast, and the other files (Statistics, ...) when it has time to do so
(e.g. a minute later). This is OK, but sstabledump does not handle this
gracefully.
Current behavior:
- NullPointerException (see below)
Expected behavior:
- More graceful behavior, e.g. a message to STDERR
PS: This is minor priority, I may pick up the ticket myself if nobody else is
faster.
-----
{code}
~/apache-cassandra-3.9/tools/bin/sstabledump /appdata/mc-53346-big-Data.db
Exception in thread "main" java.lang.NullPointerException
at
org.apache.cassandra.utils.FBUtilities.newPartitioner(FBUtilities.java:429)
at
org.apache.cassandra.tools.SSTableExport.metadataFromSSTable(SSTableExport.java:104)
at org.apache.cassandra.tools.SSTableExport.main(SSTableExport.java:180)
{code}
FBUtilities.java:429 is the following line, and validationMetadata == null:
bq. if (validationMetadata.partitioner.endsWith("LocalPartitioner"))
was:
I have a table where all columns are stored with TTL of maximum 4 hours.
Usually TWCS compaction properly removes expired data via tombstone compaction
and also removes fully expired tables. The number of SSTables is nearly
constant since weeks. Good.
The problem: Suddenly TWCS does not remove old SSTables any longer. They are
being recreated frequently (judging form the file creation timestamp), but the
number of tables is growing. Analysis and actions take so far:
- sstablemetadata shows strange data, as if the table is completely empty.
- sstabledump throws an Exception when running it on such a SSTable
- Even triggering a manual major compaction will not remove the old SSTable's.
To be more precise: They are recreated with new id and timestamp (not sure
whether they are identical as I cannot inspect content due to the sstabledump
crash)
{color:blue}edit 2017-01-19: This ticket may be obsolete. See the later
comments for more information.{color}
> NullPointerException in sstabledump
> -----------------------------------
>
> Key: CASSANDRA-13264
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13264
> Project: Cassandra
> Issue Type: Bug
> Components: Compaction
> Environment: Cassandra 3.0.9
> Java HotSpot(TM) 64-Bit Server VM version 25.112-b15 (Java version
> 1.8.0_112-b15)
> Linux 3.16
> Reporter: Christian Esken
> Priority: Minor
> Labels: twcs
>
> sstabledump can fail with NullPointerException, when not all files are
> present on Disk. This behavior is frequently present on Cassandra nodes with
> a high write-throughput and much disk I/O. It looks like Cassandra writes the
> Data file fast, and the other files (Statistics, ...) when it has time to do
> so (e.g. a minute later). This is OK, but sstabledump does not handle this
> gracefully.
> Current behavior:
> - NullPointerException (see below)
> Expected behavior:
> - More graceful behavior, e.g. a message to STDERR
> PS: This is minor priority, I may pick up the ticket myself if nobody else is
> faster.
> -----
> {code}
> ~/apache-cassandra-3.9/tools/bin/sstabledump /appdata/mc-53346-big-Data.db
> Exception in thread "main" java.lang.NullPointerException
> at
> org.apache.cassandra.utils.FBUtilities.newPartitioner(FBUtilities.java:429)
> at
> org.apache.cassandra.tools.SSTableExport.metadataFromSSTable(SSTableExport.java:104)
> at
> org.apache.cassandra.tools.SSTableExport.main(SSTableExport.java:180)
> {code}
> FBUtilities.java:429 is the following line, and validationMetadata == null:
> bq. if (validationMetadata.partitioner.endsWith("LocalPartitioner"))
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)