accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Turner (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ACCUMULO-2082) Major compacting files not empty
Date Tue, 24 Dec 2013 05:22:51 GMT

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

Mime
View raw message