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

Aaron McCurry commented on BLUR-13:
-----------------------------------

If a table is created and enabled, then disabled and removed but the indexes 
are not deleted then a log directory is kept around in the table path. Then if 
the table is created again while reusing the existing path an exception is 
thrown because the very simple path validator considers the logs dir a shard.  
Should we fix simply by checking that the dirs that are being considered as 
shards are prefixed with "shard-"?
                
> Create Table failing on folder count
> ------------------------------------
>
>                 Key: BLUR-13
>                 URL: https://issues.apache.org/jira/browse/BLUR-13
>             Project: Apache Blur
>          Issue Type: Bug
>            Reporter: Garrett Barton
>
> Was thinking its me, but theres a logs dir sitting in my blur shards
> folder, so the counts would not be the same. Is this an old log folder
> thats not used anymore?
>         public void createTable(Iface client, String tableName, String
> cluster) throws BlurException, TException {
>                 TableDescriptor td = new TableDescriptor();
>                 td.analyzerDefinition = new AnalyzerDefinition();
>                 td.name = tableName;
>                 // TODO: doc doesnt say required, yet it barfs without it?
>                 td.cluster = (cluster == null) ? "default" : cluster;
>                 //auto enable table
>                 td.isEnabled = true;
>                 //1 shard per server :)
>                 td.shardCount = client.shardServerList(cluster).size();
>                 td.readOnly = false;
>                 // TODO: hardcodes bad, assuming NN on same node as BC
>                 td.tableUri = "hdfs://" + host + ":8020/" + tableName;
>                 client.createTable(td);
>                 System.out.println("table created");
>         }
> Exception in thread "main" BlurException(message:Number of directories
> in table path [hdfs://localhost:8020/test1] does not match definition
> of [2] shard count., stackTraceStr:java.lang.RuntimeException: Number
> of directories in table path [hdfs://localhost:8020/test1] does not
> match definition of [2] shard count.
>         at 
> com.nearinfinity.blur.utils.BlurUtil.validateShardCount(BlurUtil.java:647)
>         at 
> com.nearinfinity.blur.utils.BlurUtil.setupFileSystem(BlurUtil.java:634)
>         at 
> com.nearinfinity.blur.manager.clusterstatus.ZookeeperClusterStatus.createTable(ZookeeperClusterStatus.java:699)
>         at 
> com.nearinfinity.blur.thrift.TableAdmin.createTable(TableAdmin.java:49)
>         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:601)
>         at com.nearinfinity.blur.utils.BlurUtil$1.invoke(BlurUtil.java:107)
>         at $Proxy0.createTable(Unknown Source)
>         at 
> com.nearinfinity.blur.thrift.generated.Blur$Processor$createTable.getResult(Blur.java:2285)
>         at 
> com.nearinfinity.blur.thrift.generated.Blur$Processor$createTable.getResult(Blur.java:2273)
>         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
>         at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
>         at 
> org.apache.thrift.server.TNonblockingServer$FrameBuffer.invoke(TNonblockingServer.java:632)
>         at 
> org.apache.thrift.server.THsHaServer$Invocation.run(THsHaServer.java:201)
>         at 
> com.nearinfinity.blur.concurrent.ThreadWatcher$ThreadWatcherExecutorService$1.run(ThreadWatcher.java:110)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>         at java.lang.Thread.run(Thread.java:722)
> )
>         at 
> com.nearinfinity.blur.thrift.generated.Blur$createTable_result.read(Blur.java:17406)
>         at 
> org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
>         at 
> com.nearinfinity.blur.thrift.generated.Blur$Client.recv_createTable(Blur.java:768)
>         at 
> com.nearinfinity.blur.thrift.generated.Blur$Client.createTable(Blur.java:755)
>         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:616)
>         at 
> com.nearinfinity.blur.thrift.BlurClient$BlurClientInvocationHandler$1.call(BlurClient.java:33)
>         at 
> com.nearinfinity.blur.thrift.BlurClient$BlurClientInvocationHandler$1.call(BlurClient.java:29)
>         at 
> com.nearinfinity.blur.thrift.BlurClientManager.execute(BlurClientManager.java:166)
>         at 
> com.nearinfinity.blur.thrift.BlurClientManager.execute(BlurClientManager.java:124)
>         at 
> com.nearinfinity.blur.thrift.BlurClient$BlurClientInvocationHandler.invoke(BlurClient.java:29)
>         at $Proxy0.createTable(Unknown Source)
>         at 
> com.nearinfinity.blur.testsuite.CreateInsertQueryRepeating.createTable(CreateInsertQueryRepeating.java:108)
>         at 
> com.nearinfinity.blur.testsuite.CreateInsertQueryRepeating.<init>(CreateInsertQueryRepeating.java:66)
>         at 
> com.nearinfinity.blur.testsuite.CreateInsertQueryRepeating.main(CreateInsertQueryRepeating.java:129)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to