An “V2HttpCall” Error in your SearchStax Managed Search service solr.log file means that someone tried to modify your Solr deployment using the Solr v2 API, but something went wrong. It usually indicates an innocent misconfiguration of your Sitecore connection, but it might be malevolent code trying to attack your system.
The log entry contains V2HttpCall as shown below.
2019-10-10 05:15:50.789 ERROR (qtp2008362258-11137) [ ] o.a.s.a.V2HttpCall >> path: '/index.php'
2019-10-10 05:15:50.790 ERROR (qtp2008362258-11137) [ ] o.a.s.a.V2HttpCall Error in init()
org.apache.solr.common.SolrException: no core retrieved for null
These are often 404 or 500 errors saying that the system could not find a core named “null”.
Mechanism of the Error
The Solr v2 API lets someone configure or manipulate your collections, replicas, and cores in powerful ways. The API is also self-documenting, which means we can experiment with it harmlessly.
Enter a command like this one in a browser address bar:
https://ss123456-jkls3la0-ca-central-1-aws.searchstax.com/api/c/filmcollection/get/_introspect
That’s the Solr Http Endpoint of your deployment without the /solr/ suffix of the path! You must also supply the name of a collection (shown as “filmcollection” in the example). If all is correct, you’ll get a screen of auto-generated documentation:
{
"responseHeader":{
"status":0,
"QTime":1},
"spec":[{
"documentation":"https://lucene.apache.org/solr/guide/realtime-get.html",
"description":"RealTime Get allows retrieving documents by ID before the documents have been committed to the index. It is useful when you need access to documents as soon as they are indexed but your commit times are high for other reasons." ...
Now change the collection name slightly, as from “filmcollection” to “filmCollection”. This time you get a V2HttpCall error:
{
"responseHeader":{
"status":500,
"QTime":3},
"error":{
"trace":"java.lang.NullPointerException\n\tat org.apache.solr.api.V2HttpCall.handleAdmin(V2HttpCall.java:337)
If you look for this event in solr.log, you’ll see something like this:
solr.log:26057:2022-01-27 18:20:46.756 ERROR (qtp1000975683-22) [ ] o.a.s.a.V2HttpCall >> path: '/c/filmCollection/get/_introspect'
If the API cannot locate a collection, then it looks for a core. The path following “c” is considered as the core name. If Solr is unable to find the core, it then returns an error saying, “no core retrieved for null” along with the path that was specified: “path: ‘/c/filmCollection/get/_introspect’.”
Therefore, when we see V2HttpCall errors that mention a path, we suspect that something is misconfigured in the client program.
Incorrect Sitecore Connection String
This error can be caused by an incorrect Sitecore connection string. Be sure that the string ends with /solr;solrCloud=true
.
Malicious Code
This is a suspicious series of V2HttpCall errors showing outside attempts to locate a deployment’s web.xml file.
If malicious code is leaving V2HttpCall errors in solr.log, it probably means that your deployment is not protected by IP Filtering.
It is a common mistake to add IP Filters to Solr without removing the default 0.0.0.0/0 filter from the list. That’s like putting strong locks on your door and then leaving it open. Just delete the default IP filter and the attack will be stopped in its tracks.
Questions?
Do not hesitate to contact the SearchStax Support Desk.