Hello Everyone,
I am trying to run a simple unit test using solr test framework. At this
point, all I am trying to achieve is to be able to upload some
configuration and create a collection using solr test framework.
Following is the simple code which I am trying to run.
private static final String COLLECTION = "collection2" ;
private static final int numShards = 1;
private static final int numReplicas = 1;
private static final int maxShardsPerNode = 1;
private static final int nodeCount = (numShards*numReplicas +
(maxShardsPerNode-1))/maxShardsPerNode;
private static final String id = "id";
private static final String CONFIG_DIR =
"src/test/resources/testdata/solr/collection2";
@BeforeClass
public static void setupCluster() throws Exception {
// create and configure cluster
configureCluster(nodeCount)
.addConfig("collection2", getFile(CONFIG_DIR).toPath())
.configure();
// create an empty collection
CollectionAdminRequest.createCollection(COLLECTION, "collection2",
numShards, numReplicas)
.setMaxShardsPerNode(maxShardsPerNode)
.process(cluster.getSolrClient());
// add further document(s) here
// TODO
}
However, I see that solr fails to upload the configuration to zk.
Following method of ZooKeeper class fails with the "KeeperException"
public String create(final String path, byte data[], List<ACL> acl,
CreateMode createMode)
throws KeeperException, InterruptedException
{
final String clientPath = path;
PathUtils.validatePath(clientPath, createMode.isSequential());
final String serverPath = prependChroot(clientPath);
RequestHeader h = new RequestHeader();
h.setType(ZooDefs.OpCode.create);
CreateRequest request = new CreateRequest();
CreateResponse response = new CreateResponse();
request.setData(data);
request.setFlags(createMode.toFlag());
request.setPath(serverPath);
if (acl != null && acl.size() == 0) {
throw new KeeperException.InvalidACLException();
}
request.setAcl(acl);
ReplyHeader r = cnxn.submitRequest(h, request, response, null);
if (r.getErr() != 0) {
throw KeeperException.create(KeeperException.Code.get(r.getErr()),
clientPath);
}
if (cnxn.chrootPath == null) {
return response.getPath();
} else {
return response.getPath().substring(cnxn.chrootPath.length());
}
}
And following are the Keeper exceptions thrown for each file of the
configuration.
Basically, it says
Got user-level KeeperException when processing sessionid:.... Error
Path:/solr/configs Error:KeeperErrorCode = NodeExists for /solr/configs
**************************************************************************************************************
2019-06-04T15:07:01,157 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0xe zxid:0x40 txntype:-1 reqpath:n/a Error Path:/solr/configs
Error:KeeperErrorCode = NodeExists for /solr/configs
2019-06-04T15:07:01,158 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0xf zxid:0x41 txntype:-1 reqpath:n/a Error
Path:/solr/configs/collection2 Error:KeeperErrorCode = NodeExists for
/solr/configs/collection2
2019-06-04T15:07:01,158 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x10 zxid:0x42 txntype:-1 reqpath:n/a Error
Path:/solr/configs/collection2/conf Error:KeeperErrorCode = NodeExists for
/solr/configs/collection2/conf
2019-06-04T15:07:01,160 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x12 zxid:0x44 txntype:-1 reqpath:n/a Error Path:/solr/configs
Error:KeeperErrorCode = NodeExists for /solr/configs
2019-06-04T15:07:01,160 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x13 zxid:0x45 txntype:-1 reqpath:n/a Error
Path:/solr/configs/collection2 Error:KeeperErrorCode = NodeExists for
/solr/configs/collection2
2019-06-04T15:07:01,161 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x14 zxid:0x46 txntype:-1 reqpath:n/a Error
Path:/solr/configs/collection2/conf Error:KeeperErrorCode = NodeExists for
/solr/configs/collection2/conf
2019-06-04T15:07:01,162 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x16 zxid:0x48 txntype:-1 reqpath:n/a Error Path:/solr/configs
Error:KeeperErrorCode = NodeExists for /solr/configs
2019-06-04T15:07:01,163 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x17 zxid:0x49 txntype:-1 reqpath:n/a Error
Path:/solr/configs/collection2 Error:KeeperErrorCode = NodeExists for
/solr/configs/collection2
2019-06-04T15:07:01,163 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x18 zxid:0x4a txntype:-1 reqpath:n/a Error
Path:/solr/configs/collection2/conf Error:KeeperErrorCode = NodeExists for
/solr/configs/collection2/conf
2019-06-04T15:07:01,165 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x1b zxid:0x4d txntype:-1 reqpath:n/a Error Path:/solr/configs
Error:KeeperErrorCode = NodeExists for /solr/configs
2019-06-04T15:07:01,166 [ProcessThread(sid:0 cport:50192):] INFO
org.apache.zookeeper.server.PrepRequestProcessor - Got user-level
KeeperException when processing sessionid:0x1003ec815f30007 type:create
cxid:0x1c zxid:0x4e txntype:-1 reqpath:n/a Error
Path:/solr/configs/collection2 Error:KeeperErrorCode = NodeExists for
/solr/configs/collection2
**************************************************************************************************************
I have searched through the mailing list and related areas. Also, I have
tried various ways of creating MiniSolrCloudCluster but I get the same
exception.
I have made sure that a new directory is always used as BASE_DIR to
MiniSolrCloudCluster.
Can anyone please throw some light on whats wrong here? Am I hitting any
solr test framework issue? I am using solr test framework version 7.7.1
Thanks a lot,
Pratik