Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-2003

Garbage collector fails to compact metadata table

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None
    • None

    Description

      While running randomwalk test on 1.6.0-SNAPSHOT I noticed some errors on the monitor page indicating the Accumulo garbage collector could not compact the metadata table.

      The following exception is in the GC log.

      2013-12-11 10:49:57,447 [gc.SimpleGarbageCollector] WARN : org.apache.accumulo.core.client.AccumuloException: Internal error processing waitForTableOperation
      org.apache.accumulo.core.client.AccumuloException: Internal error processing waitForTableOperation
              at org.apache.accumulo.core.client.admin.TableOperationsImpl.doTableOperation(TableOperationsImpl.java:330)
              at org.apache.accumulo.core.client.admin.TableOperationsImpl.compact(TableOperationsImpl.java:826)
              at org.apache.accumulo.core.client.admin.TableOperationsImpl.compact(TableOperationsImpl.java:807)
              at org.apache.accumulo.gc.SimpleGarbageCollector.run(SimpleGarbageCollector.java:474)
              at org.apache.accumulo.gc.SimpleGarbageCollector.main(SimpleGarbageCollector.java:144)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.apache.accumulo.start.Main$1.run(Main.java:137)
              at java.lang.Thread.run(Thread.java:662)
      Caused by: org.apache.thrift.TApplicationException: Internal error processing waitForTableOperation
              at org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
              at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71)
              at org.apache.accumulo.core.master.thrift.MasterClientService$Client.recv_waitForTableOperation(MasterClientService.java:610)
              at org.apache.accumulo.core.master.thrift.MasterClientService$Client.waitForTableOperation(MasterClientService.java:595)
              at org.apache.accumulo.core.client.admin.TableOperationsImpl.waitForTableOperation(TableOperationsImpl.java:268)
              at org.apache.accumulo.core.client.admin.TableOperationsImpl.doTableOperation(TableOperationsImpl.java:310)
              ... 10 more
      
      

      I think the following is the cause of the problem from the master logs. Looking at the code I suspect this is related to the creation of the root table and that an unnecessary range operation is being done.

      Failed to execute Repo, tid=0f298c492c30ee6c
      	java.lang.IllegalArgumentException: Range [+r<%00; : [] 9223372036854775807 false,+inf) does not overlap [!0; : [] 9223372036854775807 false,!0<%00; : [] 9223372036854775807 false)
      		at org.apache.accumulo.core.data.Range.clip(Range.java:439)
      		at org.apache.accumulo.core.data.Range.clip(Range.java:409)
      		at org.apache.accumulo.master.tableOps.CompactionDriver.isReady(CompactRange.java:105)
      		at org.apache.accumulo.master.tableOps.CompactionDriver.isReady(CompactRange.java:65)
      		at org.apache.accumulo.master.tableOps.TraceRepo.isReady(TraceRepo.java:44)
      		at org.apache.accumulo.fate.Fate$TransactionRunner.run(Fate.java:64)
      		at org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:34)
      		at java.lang.Thread.run(Thread.java:662)
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kturner Keith Turner
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: