[ 
https://issues.apache.org/jira/browse/ACCUMULO-3653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14354913#comment-14354913
 ] 

Keith Turner commented on ACCUMULO-3653:
----------------------------------------

[~elserj] could do class load sanity checks before flushing.

> 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
>            Assignee: Josh Elser
>            Priority: Blocker
>             Fix For: 1.7.0
>
>         Attachments: 
> 0001-ACCUMULO-3653-Call-testClassLoad-on-iterators-and-co.patch
>
>
> 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