[
https://issues.apache.org/jira/browse/ACCUMULO-2082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Keith Turner updated ACCUMULO-2082:
-----------------------------------
Fix Version/s: 1.6.0
Assignee: Keith Turner (was: Josh Elser)
I think I have tracked this down. In Tablet.majorCompact() when a threads
decides it should not compact, it goes to the finally block and sets
majorCompactionInProgress to false. This is done even if another thread is
compacting and has set majorCompactionInProgress to true. This allows multiple
threads to enter the major compaction code, where they bump into the sanity
check. I looked in the 1.5 branch and the problem does not seem to exist. I
tracked down the commit ff226a78 that introduced this to see if it was a merge
problem, but it was not.
> Major compacting files not empty
> --------------------------------
>
> Key: ACCUMULO-2082
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2082
> Project: Accumulo
> Issue Type: Bug
> Environment: 5bb28edba7ff587191e8c33cd909e3677465af48
> Reporter: Josh Elser
> Assignee: Keith Turner
> Fix For: 1.6.0
>
>
> Saw this during a randomwalk:
> {noformat}
> MajC Failed, message = Major compacting files not empty
> [hdfs://nameservice/accumulo/tables/p/t-0001pfx/C0001qir.rf,
> hdfs://nameservice/accumulo/tables/p/t-0001pfx/C0001qip.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qh4/I0001qh5.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qgt/I0001qgv.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qg5/I0001qg6.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qem/I0001qeo.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qgj/I0001qgk.rf,
> hdfs://nameservice/accumulo/tables/p/t-0001pfx/C0001qis.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qga/I0001qgb.rf,
> hdfs://nameservice/accumulo/tables/p/t-0001pfx/A0001pg9.rf]
> java.lang.IllegalStateException: Major compacting files not empty
> [hdfs://nameservice/accumulo/tables/p/t-0001pfx/C0001qir.rf,
> hdfs://nameservice/accumulo/tables/p/t-0001pfx/C0001qip.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qh4/I0001qh5.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qgt/I0001qgv.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qg5/I0001qg6.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qem/I0001qeo.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qgj/I0001qgk.rf,
> hdfs://nameservice/accumulo/tables/p/t-0001pfx/C0001qis.rf,
> hdfs://nameservice/accumulo/tables/p/b-0001qga/I0001qgb.rf,
> hdfs://nameservice/accumulo/tables/p/t-0001pfx/A0001pg9.rf]
> at
> org.apache.accumulo.tserver.Tablet$DatafileManager.reserveMajorCompactingFiles(Tablet.java:933)
> at
> org.apache.accumulo.tserver.Tablet._majorCompact(Tablet.java:3187)
> at
> org.apache.accumulo.tserver.Tablet.majorCompact(Tablet.java:3371)
> at
> org.apache.accumulo.tserver.Tablet.access$4700(Tablet.java:168)
> at
> org.apache.accumulo.tserver.Tablet$CompactionRunner.run(Tablet.java:2849)
> at
> org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at
> org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
> at
> org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
> at java.lang.Thread.run(Thread.java:744)
> {noformat}
> I don't actually know if it's a problem. A first read over that section of
> the code wasn't obvious to me one way or the other.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)