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]