[ 
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)

Reply via email to