[ https://issues.apache.org/jira/browse/SOLR-8642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15163155#comment-15163155 ]
Mark Miller commented on SOLR-8642: ----------------------------------- This type of change is a little scary in terms of back compat. There are lot of systems that could create collection automatically, for example, via a script and use collection aliases to juggle collections (eg create and remove them). They could easily be using things like hyphens (which I don't agree should ever have been decided as invalid anyway, but unrelated). A change like this in a point release should probably have just stuck to chars we know are an issue, especially with 6 so close to release. > SOLR allows creation of collections with invalid names > ------------------------------------------------------ > > Key: SOLR-8642 > URL: https://issues.apache.org/jira/browse/SOLR-8642 > Project: Solr > Issue Type: Bug > Components: SolrCloud > Affects Versions: master > Reporter: Jason Gerlowski > Assignee: Erick Erickson > Priority: Minor > Fix For: 5.5, master > > Attachments: SOLR-8642.patch, SOLR-8642.patch, SOLR-8642.patch, > SOLR-8642.patch > > > Some of my colleagues and I recently noticed that the CREATECOLLECTION API > will create a collection even when invalid characters are present in the name. > For example, consider the following reproduction case, which involves > creating a collection with a space in its name: > {code} > $ <clean checkout of SOLR master/trunk> > $ bin/solr start -e cloud -noprompt > ... > $ curl -i -l -k -X GET > "http://localhost:8983/solr/admin/collections?action=CREATE&name=getting+started&numShards=2&replicationFactor=2&maxShardsPerNode=2&collection.configName=gettingstarted" > 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">299</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 'getting > started_shard2_replica2': Unable to create core [getting > started_shard2_replica2] Caused by: Invalid core name: 'getting > started_shard2_replica2' Names must consist entirely of periods, underscores > and > alphanumerics</str><str>org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:Error > from server at http://127.0.1.1:7574/solr: Error CREATEing SolrCore 'getting > started_shard2_replica1': Unable to create core [getting > started_shard2_replica1] Caused by: Invalid core name: 'getting > started_shard2_replica1' Names must consist entirely of periods, underscores > and > alphanumerics</str><str>org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:Error > from server at http://127.0.1.1:7574/solr: Error CREATEing SolrCore 'getting > started_shard1_replica1': Unable to create core [getting > started_shard1_replica1] Caused by: Invalid core name: 'getting > started_shard1_replica1' Names must consist entirely of periods, underscores > and > alphanumerics</str><str>org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:Error > from server at http://127.0.1.1:8983/solr: Error CREATEing SolrCore 'getting > started_shard1_replica2': Unable to create core [getting > started_shard1_replica2] Caused by: Invalid core name: 'getting > started_shard1_replica2' Names must consist entirely of periods, underscores > and alphanumerics</str></lst> > </response> > $ > $ curl -i -l -k -X GET > "http://localhost:8983/solr/admin/collections?action=CLUSTERSTATUS&wt=json&indent=true" > HTTP/1.1 200 OK > Content-Type: application/json; charset=UTF-8 > Transfer-Encoding: chunked > { > "responseHeader":{ > "status":0, > "QTime":6}, > "cluster":{ > "collections":{ > ... > "getting started":{ > "replicationFactor":"2", > "shards":{ > "shard1":{ > "range":"80000000-ffffffff", > "state":"active", > "replicas":{}}, > "shard2":{ > "range":"0-7fffffff", > "state":"active", > "replicas":{}}}, > "router":{"name":"compositeId"}, > "maxShardsPerNode":"2", > "autoAddReplicas":"false", > "znodeVersion":1, > "configName":"gettingstarted"}, > "live_nodes":["127.0.1.1:8983_solr", > "127.0.1.1:7574_solr"]}} > {code} > The commands/responses above suggest that Solr creates the collection without > checking the name. It then goes on to create the cores for the collection, > which fails and returns the error seen above. > I verified this by doing a {{curl -i -l -k > "http://localhost:8983/solr/admin/cores}}; as expected the cores were not > actually created. (This is probably thanks to Erick's work on SOLR-8308). > This bug is a problem because it will create collections which can never be > backed up with actual cores. > Seems like the same name-verification that 8308 added to cores should also be > applied to collections. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org