You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Markus Jelsma (JIRA)" <ji...@apache.org> on 2013/01/08 13:36:12 UTC

[jira] [Created] (SOLR-4285) Solr mangles distributed query parameters

Markus Jelsma created SOLR-4285:
-----------------------------------

             Summary: Solr mangles distributed query parameters
                 Key: SOLR-4285
                 URL: https://issues.apache.org/jira/browse/SOLR-4285
             Project: Solr
          Issue Type: Bug
          Components: SolrCloud
    Affects Versions: 5.0
         Environment: trunk check outs between august 2012 and january 2013 using Tomcat6 and Java6.
            Reporter: Markus Jelsma
            Priority: Critical
             Fix For: 5.0


Using Siege to load test a cluster via a load balancer we sometimes see the forwarded query strings being mangled and causing an error. The problem mainly manifests in a function query parameter and the host__terms parameter. It doesn't seem to be an issue of concurrency because it also happens when load testing with a single thread.

function query parameter causing an error:
{code}
2012-12-12 11:11:45,527 ERROR [solr.core.SolrCore] - [http-8080-exec-16] - : org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: Expected ',' at position 55 in 'if(exists(date),max(recip(ms(NOW/DAY,date),3.17e-8,143
.9),.8),.7)'
        at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:154)
...
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.solr.search.SyntaxError: Expected ',' at position 55 in 'if(exists(date),max(recip(ms(NOW/DAY,date),3.17e-8,143
.9),.8),.7)'
{code}

The above error is somewhat older but for some reason the comma in the edismax boost parameter is replaced by a newline.




host__terms parameter causing an error:
{code}
2013-01-08 12:09:08,902 ERROR [handler.component.FacetComponent] - [http-8080-exec-13] - : Unexpected term returned for facet refining. key=host term='dafenwout.domain.ext^daisybel.domain.ext'
        request params=spellcheck=false&facet=true&sort=score+desc.....&facet.field=%7B%21terms%3D%24host__terms+ex%3Dhost%7Dhost&host__terms=....daanjobbe.domain.ext%2Cdaank.domain.ext%2Cdafenwout.domain.ext%2Cdaisybel.domain.ext%2Cdaniellehooijmans.domain.ext...koenleurs.domain.ext
        toRefine=[Ljava.util.List;@5b48447f
        response={....daanjobbe.domain.ext=0,daank.domain.ext=0,dafenwout.domain.ext^daisybel.domain.ext=0,daniellehooijmans.domain.ext=0...koenleurs.domain.ext=0}
{code}

I've shortened the above error significantly, it was about 20kB. It's the carret symbol causing the issue. For some reason the logged request does not contain the carret symbol.

Both issues are very elusive and hard to reproduce but in our case will appear if we send queries long enough, 50k, 100k queries.

Original thread:
http://lucene.472066.n3.nabble.com/SolrCloud-breaks-distributed-query-strings-td4026314.html

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org