You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Eric Newton (JIRA)" <ji...@apache.org> on 2014/03/07 16:16:43 UTC

[jira] [Created] (ACCUMULO-2438) deleting all table rows caused tablet load failure

Eric Newton created ACCUMULO-2438:
-------------------------------------

             Summary: deleting all table rows caused tablet load failure
                 Key: ACCUMULO-2438
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2438
             Project: Accumulo
          Issue Type: Bug
          Components: master
         Environment: nightly single-node test
            Reporter: Eric Newton
            Assignee: Eric Newton
            Priority: Critical
             Fix For: 1.6.0


testTrace in ConditionalWriterIT failed:

{noformat}
java.lang.Exception: test timed out after 60000 milliseconds
	at java.lang.Thread.sleep(Native Method)
	at org.apache.accumulo.core.util.UtilWaitThread.sleep(UtilWaitThread.java:26)
	at org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:240)
	at org.apache.accumulo.core.client.impl.ScannerIterator$Reader.run(ScannerIterator.java:84)
	at org.apache.accumulo.core.client.impl.ScannerIterator.hasNext(ScannerIterator.java:177)
	at org.apache.accumulo.core.trace.TraceDump.printTrace(TraceDump.java:133)
	at org.apache.accumulo.test.ConditionalWriterIT.testTrace(ConditionalWriterIT.java:1231)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:622)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
{noformat}

Examining the logs, it seems like the client was having a hard time locating the trace table (table id 9):

{noformat}
2014-03-07 04:33:40,445 [impl.ThriftScanner] TRACE: Failed to locate tablet for table : 9 row : 9dd07d1bd8b9bc0d
...
2014-03-07 04:33:40,551 [impl.ThriftScanner] TRACE: Failed to locate tablet for table : 9 row : 9dd07d1bd8b9bc0d
{noformat}

Examining the master logs, I see the trace table being created, assigned, and hosted.

This test deletes everything in the trace table before tracing an operation:

{noformat}
    conn.tableOperations().deleteRows("trace", null, null);
{noformat}

The master takes the table offline and re-writes the metadata table information so that it no longer has any data.

The master then attempts to put the tablet online, but the operation fails:

{noformat}
2014-03-07 04:33:40,079 [master.Master] ERROR: host1:47630 reports assignment failed for tablet 9<<
{noformat}

The tablet server gives the real problem:

{noformat}
2014-03-07 04:33:40,074 [tserver.TabletServer] WARN : exception trying to assign tablet 9<< file:////local/disk1/jenkins/workspace/accumulo16/test/target/mini-tests/org.apache.accumulo.test.functional.SimpleMacIT/1394184783304_4048/accumulo/tables/9/default_tablet
java.lang.IllegalArgumentException: Time type unknown : ^@0
        at org.apache.accumulo.server.tablets.TabletTime.getInstance(TabletTime.java:67)
        at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1296)
        at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1211)
        at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1067)
        at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1056)
        at org.apache.accumulo.tserver.TabletServer$AssignmentHandler.run(TabletServer.java:2911)
        at org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
        at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        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:701)
{noformat}

Tablet time should always be "L" or "M".




--
This message was sent by Atlassian JIRA
(v6.2#6252)