cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Griffith (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-5589) ArrayIndexOutOfBoundsException in LeveledManifest
Date Thu, 25 Sep 2014 15:05:34 GMT

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

Jeff Griffith edited comment on CASSANDRA-5589 at 9/25/14 3:05 PM:
-------------------------------------------------------------------

hi [~jbellis], it looks like this problem may not have been the total # of generations allocated
because I can still see this in 1.2.19. The stack trace is the same as Jeremy's however the
index out of bounds is 9 (log 10 of 1 billion from your fix.) skipLevels does not check newLevel
against generations.length however the fix obviously isn't that simple since it needs to return
the newLevel... some other logic problem in the loop termination?

    private int skipLevels(int newLevel, Iterable<SSTableReader> added)
    {
        while (maxBytesForLevel(newLevel) < SSTableReader.getTotalBytes(added)
            && generations[(newLevel + 1)].isEmpty())
        {
            newLevel++;
        }
        return newLevel;
    }


was (Author: jeffery.griffith):
hi [~jbellis], it looks like this problem not have been the total # of generations allocated
because I can still see this in 1.2.19. The stack trace is the same as Jeremy's however the
index out of bounds is 9 (log 10 of 1 billion from your fix.) skipLevels does not check newLevel
against generations.length however the fix obviously isn't that simple since it needs to return
the newLevel... some other logic problem in the loop termination?

    private int skipLevels(int newLevel, Iterable<SSTableReader> added)
    {
        while (maxBytesForLevel(newLevel) < SSTableReader.getTotalBytes(added)
            && generations[(newLevel + 1)].isEmpty())
        {
            newLevel++;
        }
        return newLevel;
    }

> ArrayIndexOutOfBoundsException in LeveledManifest
> -------------------------------------------------
>
>                 Key: CASSANDRA-5589
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5589
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.0
>            Reporter: Jeremy Hanna
>            Assignee: Jonathan Ellis
>            Priority: Minor
>              Labels: compaction
>             Fix For: 1.2.6
>
>         Attachments: 5589.txt
>
>
> The following stack trace was in the system.log:
> {quote}
> ERROR [CompactionExecutor:2] 2013-05-22 16:19:32,402 CassandraDaemon.java (line 174)
Exception in thread Thread[CompactionExecutor:2,1,main]
>  java.lang.ArrayIndexOutOfBoundsException: 5
> 	at org.apache.cassandra.db.compaction.LeveledManifest.skipLevels(LeveledManifest.java:176)
> 	at org.apache.cassandra.db.compaction.LeveledManifest.promote(LeveledManifest.java:215)
> 	at org.apache.cassandra.db.compaction.LeveledCompactionStrategy.handleNotification(LeveledCompactionStrategy.java:155)
> 	at org.apache.cassandra.db.DataTracker.notifySSTablesChanged(DataTracker.java:410)
> 	at org.apache.cassandra.db.DataTracker.replaceCompactedSSTables(DataTracker.java:223)
> 	at org.apache.cassandra.db.ColumnFamilyStore.replaceCompactedSSTables(ColumnFamilyStore.java:991)
> 	at org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:230)
> 	at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> 	at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> 	at org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:58)
> 	at org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:60)
> 	at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:188)
> {quote}



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

Mime
View raw message