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

Michael Miller commented on ACCUMULO-4486:
------------------------------------------

After spending some time looking at this issue, it seems to be a limitation of 
the API. When the shell calls compact, it will wait for flush to complete 
before continuing. The flush will fail because of an unknown property but there 
is no way for the shell to know that this has happened. The compaction thread 
will then sleep for a random period of time only to keep failing when it tries 
again.

> Compaction from Shell hangs on Unknown property
> -----------------------------------------------
>
>                 Key: ACCUMULO-4486
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4486
>             Project: Accumulo
>          Issue Type: Bug
>          Components: shell, tserver
>    Affects Versions: 1.8.0
>            Reporter: Michael Miller
>            Assignee: Michael Miller
>            Priority: Minor
>
> I was following the sampling 
> [example|https://accumulo.apache.org/1.8/examples/sample] when I mistyped one 
> of the table properties. After realizing this I entered the correct property 
> but didn't remove the bad one. I then ran the "compact" command but the shell 
> hung indefinitely. There was an IllegalArgumentException printed in the log 
> but I believe the bug is how the shell (or Compactor) mishandled the 
> exception, never returning control to the user. Eventually I did get a 
> warning on the shell "WARN : Thread "shell" stuck on IO.." but never regained 
> control of the shell. Here are the commands run:
> {code}
> createtable sampex
> insert 9255 doc content 'abcde'
> insert 9255 doc url file://foo.txt
> insert 8934 doc content 'accumulo scales'
> insert 8934 doc url file://accumulo_notes.txt
> insert 2317 doc content 'milk, eggs, bread, parmigiano-reggiano'
> insert 2317 doc url file://groceries/9.txt
> insert 3900 doc content 'EC2 ate my homework'
> insert 3900 doc uril file://final_project.txt
> config -t sampex -s 
> table.sampler=org.apache.accumulo.core.client.sample.RowSampler
> config -t sampex -s table.sampler.opt.haser=murmur3_32
> config -t sampex -s table.sampler.opt.hasher=murmur3_32
> config -t sampex -s table.sampler.opt.modulus=3
> compact -t sampex --sf-no-sample
> {code}
> Stacktrace of the exception printed in the tserver log:
> {code}
> 2016-10-05 13:13:25,299 [tablet.Compactor] ERROR: Unknown option : haser
> java.lang.IllegalArgumentException: Unknown option : haser
>         at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
>         at 
> org.apache.accumulo.core.client.sample.AbstractHashSampler.init(AbstractHashSampler.java:81)
>         at 
> org.apache.accumulo.core.sample.impl.SamplerFactory.newSampler(SamplerFactory.java:40)
>         at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:91)
>         at 
> org.apache.accumulo.core.file.DispatchingFileFactory.openWriter(DispatchingFileFactory.java:74)
>         at 
> org.apache.accumulo.core.file.FileOperations$OpenWriterOperation.build(FileOperations.java:331)
>         at 
> org.apache.accumulo.tserver.tablet.Compactor.call(Compactor.java:201)
>         at 
> org.apache.accumulo.tserver.tablet.MinorCompactor.call(MinorCompactor.java:111)
>         at 
> org.apache.accumulo.tserver.tablet.Tablet.minorCompact(Tablet.java:811)
>         at 
> org.apache.accumulo.tserver.tablet.MinorCompactionTask.run(MinorCompactionTask.java:84)
>         at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>         at org.apache.htrace.wrappers.TraceRunnable.run(TraceRunnable.java:57)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>         at java.lang.Thread.run(Thread.java:745)
> 2016-10-05 13:13:25,299 [tablet.MinorCompactor] WARN : MinC failed (Unknown 
> option : haser) to create 
> hdfs://localhost:10000/accumulo/tables/2/default_tablet/F0000000.rf_tmp 
> retrying ...
> java.lang.IllegalArgumentException: Unknown option : haser
>         at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
>         at 
> org.apache.accumulo.core.client.sample.AbstractHashSampler.init(AbstractHashSampler.java:81)
>         at 
> org.apache.accumulo.core.sample.impl.SamplerFactory.newSampler(SamplerFactory.java:40)
>         at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:91)
>         at 
> org.apache.accumulo.core.file.DispatchingFileFactory.openWriter(DispatchingFileFactory.java:74)
>         at 
> org.apache.accumulo.core.file.FileOperations$OpenWriterOperation.build(FileOperations.java:331)
>         at 
> org.apache.accumulo.tserver.tablet.Compactor.call(Compactor.java:201)
>         at 
> org.apache.accumulo.tserver.tablet.MinorCompactor.call(MinorCompactor.java:111)
>         at 
> org.apache.accumulo.tserver.tablet.Tablet.minorCompact(Tablet.java:811)
>         at 
> org.apache.accumulo.tserver.tablet.MinorCompactionTask.run(MinorCompactionTask.java:84)
>         at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>         at org.apache.htrace.wrappers.TraceRunnable.run(TraceRunnable.java:57)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>         at java.lang.Thread.run(Thread.java:745)
> {code}
> The thread will then sleep:
> 2016-10-05 13:13:25,324 [tablet.MinorCompactor] DEBUG: MinC failed sleeping 
> 10116 ms before retrying



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

Reply via email to