You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "C. Scott Andreas (JIRA)" <ji...@apache.org> on 2018/11/19 02:14:00 UTC
[jira] [Updated] (CASSANDRA-12561) LCS compaction going into
infinite loop due to non-existent sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-12561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
C. Scott Andreas updated CASSANDRA-12561:
-----------------------------------------
Component/s: Compaction
> LCS compaction going into infinite loop due to non-existent sstables
> --------------------------------------------------------------------
>
> Key: CASSANDRA-12561
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12561
> Project: Cassandra
> Issue Type: Bug
> Components: Compaction
> Reporter: Nimi Wariboko Jr.
> Priority: Major
> Labels: lcs
>
> I believe this is related/similar to CASSANDRA-11373, but I'm running 3.5 and I still have this issue.
> AFAICT, this happens when getCompactionCandidates in LeveledManifest.java returns a candidate that does not exist on disk.
> Eventually, all the compaction threads back up, garbage collections start taking an upwards of 20 seconds and messages start being dropped.
> To get around this, I patched my instance with the following code in LeveledManifest.java
> {code:java}
> Set<SSTableReader> removeCandidates = new HashSet<>();
> for (SSTableReader sstable : candidates)
> {
> if (!(new java.io.File(sstable.getFilename())).exists()) {
> removeCandidates.add(sstable);
> logger.warn("Not compating candidate {} because it does not exist ({}).", sstable.getFilename(), sstable.openReason);
> }
> }
> candidates.removeAll(removeCandidates);
> if (candidates.size() < 2)
> return Collections.emptyList();
> else
> return candidates;
> {code}
> This just removes any candidate that doesn't exist on disk - however I'm not sure what the side effects of this are.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org