Jason Gerlowski created SOLR-8677:
-------------------------------------

             Summary: SOLR allows creation of shards with invalid names.
                 Key: SOLR-8677
                 URL: https://issues.apache.org/jira/browse/SOLR-8677
             Project: Solr
          Issue Type: Bug
    Affects Versions: master
            Reporter: Jason Gerlowski
             Fix For: master


Solr currently has "recommendations" about what constitutes a valid identifier, 
but doesn't enforce these "recommendations" uniformly.  Core (SOLR-8308) and 
collection (SOLR-8642) names are currently checked, but shards aren't.

{code}
$ bin/solr -e cloud -noprompt
    ....
$ curl -i -l -k -X GET 
"http://localhost:8983/solr/admin/collections?action=CREATE&name=coll1&router.name=implicit&numShards=1&shards=bad+shard+name";
HTTP/1.1 200 OK
Content-Type: application/xml; charset=UTF-8
Transfer-Encoding: chunked

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int 
name="QTime">204</int></lst><lst 
name="failure"><str>org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:Error
 from server at http://127.0.1.1:8983/solr: Error CREATEing SolrCore 'coll1_bad 
shard name_replica1': Unable to create core [coll1_bad shard name_replica1] 
Caused by: Invalid name: 'coll1_bad shard name_replica1' Identifiers must 
consist entirely of periods, underscores and alphanumerics</str></lst>
</response>
{code}

(Note that the CREATE command above returned 200-OK, and the failure was only 
apparent when viewing the message.)

A CLUSTERSTATUS shows that the shard was actually created, but has no 
underlying cores.

{code}
$ curl -i -l -k -X GET 
"http://localhost:8983/solr/admin/collections?action=CLUSTERSTATUS&wt=json&indent=true";
...
    "collections":{
      "coll1":{
        "replicationFactor":"1",
        "shards":{"bad shard name":{
            "range":null,
            "state":"active",
            "replicas":{}}},
        "router":{"name":"implicit"},
        "maxShardsPerNode":"1",
        "autoAddReplicas":"false",
        "znodeVersion":1,
        "configName":"gettingstarted"},
...
{code}

This JIRA proposes adding a check to ensure that shard names meet SOLR's 
identifier "recommendations".  This should prevent users from accidentally 
putting themselves in a bad state.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to