[ 
https://issues.apache.org/jira/browse/SOLR-14903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris M. Hostetter updated SOLR-14903:
--------------------------------------
    Attachment: SOLR-14903.patch
      Assignee: Chris M. Hostetter
        Status: Open  (was: Open)



I'm attaching a straw man approach, inspired by the way start.jar works.

The basic idea is a "JettyManager" that uses jetty's {{XmlConfiguration}} class 
to "configure" jetty objects found in the {{server/etc/*.xml}} files, with some 
minor tweaks using jetty {{<Property/>}} xml nodes to read from a 
{{Properties}} object passed to the {{XmlConfiguration}} instead of directly 
from system properties (and to prevent the "normal" solr webapp loading)

Once jetty is up on a random port, *THEN* we make things like the {{hostPort}} 
available to the {{WebAppContext}} for Solr via the existing hooks in 
{{SolrDispatchFilter}}

There are still some gaps that seem eaisly filled (like SSL and populating the 
SSL properties using randomzed SSL config) but at the moment things look really 
promising -- i'm pretty sure we can refactor the "JettyManager" code i've got 
here to be a test-framework subclass of {{JettySolrRunner}}, implimeneting it's 
full API (allthough i think we should intentionally ignore the "re-use same 
port" option for the {{start()}} method -- it makes no sense in tests).

Currently the biggest problem i haven't figured out is a very werid error in my 
test: something about the way the test is written seems to be causing the 
IndexWriter to be ephemeral and never write to disk -- so stoping and 
restarting a jetty intsance results in an empty index -- no idea why (maybe 
DUH2 is picking up the wrong dataDir? ... but the tlog files are showing up in 
the right place ... like i said it's weird).

I'm about to go offline for ~12 days, but I plan to pick this back up when i 
return ... i welcome any feedback or concerns on the approach i'm currently 
headed.

----

BTW: Another example of how our test infra is lying to us that i discovered 
while working on this: we have test confirming the gzip encoded responses work 
if the client requests them -- but that only works using JettySolrRunner, 
because the *real* solr server doesn't have it configured: SOLR-11752




> SolrCloud tests should use the jetty.xml that we ship with
> ----------------------------------------------------------
>
>                 Key: SOLR-14903
>                 URL: https://issues.apache.org/jira/browse/SOLR-14903
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Chris M. Hostetter
>            Assignee: Chris M. Hostetter
>            Priority: Major
>         Attachments: SOLR-14903.patch
>
>
> writing a good test for SOLR-14898 turned out to be a challenge because 
> SolrCloudTestCase -- and any test using jetty -- doesn't _actually_ use the 
> jetty.xml that real Solr nodes use, because JettySolrRunner manually 
> configures i'ts jetty "Server" instance.
> We should fix this so what you get i na test matches what a real Solr node 
> does.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to