You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Jason Gerlowski (Jira)" <ji...@apache.org> on 2022/09/28 14:59:00 UTC
[jira] [Created] (SOLR-16437) ClusterStateUpdater suppresses errors found while processing queue items
Jason Gerlowski created SOLR-16437:
--------------------------------------
Summary: ClusterStateUpdater suppresses errors found while processing queue items
Key: SOLR-16437
URL: https://issues.apache.org/jira/browse/SOLR-16437
Project: Solr
Issue Type: Bug
Security Level: Public (Default Security Level. Issues are Public)
Affects Versions: main (10.0)
Reporter: Jason Gerlowski
I was playing with the ADDREPLICAPROP API recently, and noticed that Solr returns a 200 even when I accidentally misspelled the replica name. Steps to reproduce:
{code}
git checkout main
./gradlew clean assemble
cd solr/packaging/build/solr-10.0.0-SNAPSHOT
bin/solr start -c
bin/solr create -c foo
curl -ilk -X GET "http://localhost:8983/solr/admin/collections?action=ADDREPLICAPROP&collection=foo&shard=shard1&replica=invalidReplicaName&property=someProp&property.value=someVal"
{code}
It looks like Solr *does* notice the invalid replica name, and the following appears in the logs:
{code}
ERROR (OverseerStateUpdate-72202151666515968-localhost:8983_solr-n_0000000000) [] o.a.s.c.Overseer Overseer could not process the current clusterstate state update message, skipping the message: {
"replica":"invalidReplicaName",
"property.value":"someVal",
"property":"someProp",
"collection":"foo",
"shard":"shard1",
"operation":"addreplicaprop"} => org.apache.solr.common.SolrException: Could not find collection/slice/replica foo/shard1/core_ndoe2 no action taken.
at org.apache.solr.cloud.overseer.ReplicaMutator.addReplicaProperty(ReplicaMutator.java:163)
org.apache.solr.common.SolrException: Could not find collection/slice/replica foo/shard1/core_ndoe2 no action taken.
at org.apache.solr.cloud.overseer.ReplicaMutator.addReplicaProperty(ReplicaMutator.java:163) ~[?:?]
at org.apache.solr.cloud.Overseer$ClusterStateUpdater.processMessage(Overseer.java:527) ~[?:?]
at org.apache.solr.cloud.Overseer$ClusterStateUpdater.processQueueItem(Overseer.java:430) ~[?:?]
at org.apache.solr.cloud.Overseer$ClusterStateUpdater.run(Overseer.java:357) ~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
{code}
...but the problem is never surfaced to the user, presumably because there's no synchronous validation of the inputs before they're used to create a message for the overseer/state-updater.
Maybe we should update this (and other APIs) to do a best-effort sanity-check of input parameters before shipping them off to the asynchronous work queue.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org