Josh Elser created ACCUMULO-3653:
------------------------------------

             Summary: Compaction with custom compaction strategy class doesn't 
validate specified class
                 Key: ACCUMULO-3653
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-3653
             Project: Accumulo
          Issue Type: Bug
          Components: tserver
            Reporter: Josh Elser
            Priority: Blocker
             Fix For: 1.7.0


Say I create a table, insert a record and issue a compaction for a class that 
doesn't exist:

{noformat}
> createtable josh
josh> insert a b c d
josh> compact -s doesnt.exist
{noformat}

{panel:title=Tserver}
{noformat}
2015/03/09 15:47:28,860 tserver:hw10447.local   1       
ERROR
        

java.lang.ClassNotFoundException: doesnt.exist
        java.lang.RuntimeException: java.lang.ClassNotFoundException: 
doesnt.exist
                at 
org.apache.accumulo.tserver.tablet.Tablet.createCompactionStrategy(Tablet.java:2545)
                at 
org.apache.accumulo.tserver.tablet.Tablet.compactAll(Tablet.java:2578)
                at 
org.apache.accumulo.tserver.TabletServer$ThriftClientHandler.compact(TabletServer.java:1687)
                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:606)
                at 
org.apache.accumulo.core.trace.wrappers.RpcServerInvocationHandler.invoke(RpcServerInvocationHandler.java:46)
                at 
org.apache.accumulo.server.rpc.RpcWrapper$1.invoke(RpcWrapper.java:47)
                at com.sun.proxy.$Proxy19.compact(Unknown Source)
                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:606)
                at 
org.apache.accumulo.server.rpc.TCredentialsUpdatingInvocationHandler.invokeMethod(TCredentialsUpdatingInvocationHandler.java:153)
                at 
org.apache.accumulo.server.rpc.TCredentialsUpdatingInvocationHandler.invoke(TCredentialsUpdatingInvocationHandler.java:58)
                at com.sun.proxy.$Proxy19.compact(Unknown Source)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$compact.getResult(TabletClientService.java:2728)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$compact.getResult(TabletClientService.java:2714)
                at 
org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
                at 
org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
                at 
org.apache.accumulo.server.rpc.UGIAssumingProcessor.process(UGIAssumingProcessor.java:102)
                at 
org.apache.accumulo.server.rpc.TimedProcessor.process(TimedProcessor.java:63)
                at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:225)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                at 
org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:35)
                at java.lang.Thread.run(Thread.java:745)
        Caused by: java.lang.ClassNotFoundException: doesnt.exist
                at 
org.apache.commons.vfs2.impl.VFSClassLoader.findClass(VFSClassLoader.java:175)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
                at 
org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader.loadClass(AccumuloVFSClassLoader.java:109)
                at 
org.apache.accumulo.tserver.tablet.Tablet.createCompactionStrategy(Tablet.java:2540)
                ... 27 more
{noformat}
{panel}

{panel:title=Master}
{noformat}
2015/03/09 15:47:29,371 master:hw10447.local    1       
WARN
        

Failed to execute Repo, tid=34a89a8062f38a79
        java.lang.RuntimeException: 
org.apache.accumulo.core.client.impl.AccumuloServerException: Error on server 
hw10447.local:9997
                at 
org.apache.accumulo.core.client.impl.ScannerIterator.hasNext(ScannerIterator.java:180)
                at 
org.apache.accumulo.core.client.IsolatedScanner$RowBufferingIterator.readRow(IsolatedScanner.java:69)
                at 
org.apache.accumulo.core.client.IsolatedScanner$RowBufferingIterator.<init>(IsolatedScanner.java:148)
                at 
org.apache.accumulo.core.client.IsolatedScanner.iterator(IsolatedScanner.java:236)
                at 
org.apache.accumulo.core.client.RowIterator.<init>(RowIterator.java:117)
                at 
org.apache.accumulo.master.tableOps.CompactionDriver.isReady(CompactRange.java:115)
                at 
org.apache.accumulo.master.tableOps.CompactionDriver.isReady(CompactRange.java:67)
                at 
org.apache.accumulo.master.tableOps.TraceRepo.isReady(TraceRepo.java:47)
                at 
org.apache.accumulo.fate.Fate$TransactionRunner.run(Fate.java:68)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                at 
org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:34)
                at java.lang.Thread.run(Thread.java:745)
        Caused by: 
org.apache.accumulo.core.client.impl.AccumuloServerException: Error on server 
hw10447.local:9997
                at 
org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:286)
                at 
org.apache.accumulo.core.client.impl.ScannerIterator$Reader.run(ScannerIterator.java:80)
                at 
org.apache.accumulo.core.client.impl.ScannerIterator.hasNext(ScannerIterator.java:170)
                ... 12 more
        Caused by: org.apache.thrift.TApplicationException: Internal error 
processing compact
                at 
org.apache.thrift.TApplicationException.read(TApplicationException.java:111)
                at 
org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.recv_startScan(TabletClientService.java:232)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.startScan(TabletClientService.java:208)
                at 
org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:403)
                at 
org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:278)
                ... 14 more

2015/03/09 15:47:30,018 master:hw10447.local    1       
WARN
        

null row
        java.lang.IllegalArgumentException: null row
                at org.apache.accumulo.core.data.Key.<init>(Key.java:388)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.doLookup(TabletServerBatchReaderIterator.java:647)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator$QueryTask.run(TabletServerBatchReaderIterator.java:349)
                at 
org.apache.htrace.wrappers.TraceRunnable.run(TraceRunnable.java:57)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                at 
org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:35)
                at java.lang.Thread.run(Thread.java:745)

2015/03/09 15:47:30,018 master:hw10447.local    1       
ERROR
        

Error processing table state for store Metadata Tablets
        java.lang.IllegalArgumentException: null row
                at org.apache.accumulo.core.data.Key.<init>(Key.java:388)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.doLookup(TabletServerBatchReaderIterator.java:647)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator$QueryTask.run(TabletServerBatchReaderIterator.java:349)
                at 
org.apache.htrace.wrappers.TraceRunnable.run(TraceRunnable.java:57)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                at 
org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:35)
                at java.lang.Thread.run(Thread.java:745)

2015/03/09 15:47:30,027 master:hw10447.local    1       
WARN
        

Error on server hw10447.local:9997
        org.apache.accumulo.core.client.impl.AccumuloServerException: Error on 
server hw10447.local:9997
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.doLookup(TabletServerBatchReaderIterator.java:695)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator$QueryTask.run(TabletServerBatchReaderIterator.java:349)
                at 
org.apache.htrace.wrappers.TraceRunnable.run(TraceRunnable.java:57)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                at 
org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:35)
                at java.lang.Thread.run(Thread.java:745)
        Caused by: org.apache.thrift.TApplicationException: closeMultiScan 
failed: out of sequence response
                at 
org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:76)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.recv_closeMultiScan(TabletClientService.java:371)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.closeMultiScan(TabletClientService.java:357)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.doLookup(TabletServerBatchReaderIterator.java:681)
                ... 6 more

2015/03/09 15:47:35,531 master:hw10447.local    4       
ERROR
        

Error processing table state for store Normal Tablets
        java.lang.RuntimeException: java.lang.RuntimeException: Failed to 
create iterator
                at 
org.apache.accumulo.server.master.state.MetaDataTableScanner.<init>(MetaDataTableScanner.java:71)
                at 
org.apache.accumulo.server.master.state.MetaDataTableScanner.<init>(MetaDataTableScanner.java:55)
                at 
org.apache.accumulo.server.master.state.MetaDataStateStore.iterator(MetaDataStateStore.java:62)
                at 
org.apache.accumulo.master.TabletGroupWatcher.run(TabletGroupWatcher.java:170)
        Caused by: java.lang.RuntimeException: Failed to create iterator
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.<init>(TabletServerBatchReaderIterator.java:158)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReader.iterator(TabletServerBatchReader.java:115)
                at 
org.apache.accumulo.server.master.state.MetaDataTableScanner.<init>(MetaDataTableScanner.java:65)
                ... 3 more
        Caused by: 
org.apache.accumulo.core.client.impl.AccumuloServerException: Error on server 
hw10447.local:9997
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.doLookup(TabletServerBatchReaderIterator.java:695)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.doLookup(TabletServerBatchReaderIterator.java:594)
                at 
org.apache.accumulo.core.metadata.MetadataLocationObtainer.lookupTablets(MetadataLocationObtainer.java:175)
                at 
org.apache.accumulo.core.client.impl.TabletLocatorImpl.processInvalidated(TabletLocatorImpl.java:664)
                at 
org.apache.accumulo.core.client.impl.TabletLocatorImpl._locateTablet(TabletLocatorImpl.java:607)
                at 
org.apache.accumulo.core.client.impl.TabletLocatorImpl.binRanges(TabletLocatorImpl.java:280)
                at 
org.apache.accumulo.core.client.impl.TabletLocatorImpl.binRanges(TabletLocatorImpl.java:355)
                at 
org.apache.accumulo.core.client.impl.TimeoutTabletLocator.binRanges(TimeoutTabletLocator.java:104)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.binRanges(TabletServerBatchReaderIterator.java:233)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.lookup(TabletServerBatchReaderIterator.java:220)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.<init>(TabletServerBatchReaderIterator.java:154)
                ... 5 more
        Caused by: org.apache.thrift.TApplicationException: closeMultiScan 
failed: out of sequence response
                at 
org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:76)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.recv_closeMultiScan(TabletClientService.java:371)
                at 
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.closeMultiScan(TabletClientService.java:357)
                at 
org.apache.accumulo.core.client.impl.TabletServerBatchReaderIterator.doLookup(TabletServerBatchReaderIterator.java:681)
                ... 15 more
{noformat}
{panel}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to