[ 
https://issues.apache.org/jira/browse/SOLR-11526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16216016#comment-16216016
 ] 

Jason Gerlowski commented on SOLR-11526:
----------------------------------------

I'd thought the "status" field would be enough to solve this, but it looks like 
it's 0 even on many failures:

{code}
{
  "responseHeader": {
    "status": 0,
    "QTime": 13058
  },
  "failure": {
    "127.0.0.1:45211_solr": 
"org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:Error 
from server at http://127.0.0.1:45211/solr: Error CREATEing SolrCore 
'foo_shard1_replica_n1': Unable to create core [foo_shard1_replica_n1] Caused 
by: access denied (\"java.io.FilePermission\" \"/some_invalid_dir/foo/tlog\" 
\"write\")"
  }
}
{code}

I feel like I'm misinterpreting the intent of the status field.  The few times 
I see it set as non-zero, it holds the HTTP status code from the request to 
Solr.  This seems like it could be used for success-determination, though maybe 
Solr doesn't use HTTP status codes consistently enough for this to be reliable. 
 I'll take a look at the logic used to set the status field for these APIs and 
see if using "status" is as reasonable as it appears at first blush.

> CollectionAdminResponse.isSuccess() incorrect for most admin collections APIs
> -----------------------------------------------------------------------------
>
>                 Key: SOLR-11526
>                 URL: https://issues.apache.org/jira/browse/SOLR-11526
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrJ
>    Affects Versions: master (8.0)
>            Reporter: Jason Gerlowski
>            Priority: Minor
>
> {{CollectionAdminResponse}} has a boolean {{isSuccess}} method which reports 
> whether the API was called successfully.  It returns true if it finds a 
> non-null NamedList element called "success".  It returns false otherwise.
> Unfortunately, only a handful of the Collection-Admin APIs have this element. 
>  APIs that don't contain this element in their response will always appear to 
> have failed (according to {{isSuccess()}}).
> The current implementation is correct for:
> - CREATECOLLECTION
> - RELOAD
> - SPLITSHARD
> - DELETESHARD
> - DELETECOLLECTION
> - ADDREPLICA
> - MIGRATE
> The current implementation is incorrect for:
> - CREATESHARD
> - CREATEALIAS
> - DELETEALIAS
> - LISTALIASES
> - CLUSTERPROP
> - ADDROLE
> - REMOVEROLE
> - OVERSEERSTATUS
> - CLUSTERSTATUS
> - REQUESTSTATUS
> - DELETESTATUS
> - LIST
> - ADDREPLICAPROP
> - DELETEREPLICAPROP
> - BALANCESHARDUNIQUE
> - REBALANCELEADERS
> (these lists are incomplete)
> A trivial fix for this would be to change the implementation to check the 
> "status" NamedList element (which is present in all Collection-Admin APIs).  
> My understanding is that the "status' field is set to 0 always on success.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to