Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-12199

TestReplicationHandler.doTestRepeater(): TEST_PORT interpolation failure: Server refused connection at: http://127.0.0.1:TEST_PORT/solr

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 7.4
    • None
    • None

    Description

      From https://jenkins.thetaphi.de/job/Lucene-Solr-7.x-MacOSX/551/:

         [junit4]   2> 750759 INFO  (TEST-TestReplicationHandler.doTestRepeater-seed#[7078A21248E0962E]) [    ] o.a.s.h.TestReplicationHandler Waited for 0ms and found 3 docs
         [junit4]   2> 750760 INFO  (qtp351238853-8844) [    x:collection1] o.a.s.c.S.Request [collection1]  webapp=/solr path=/replication params={_trace=getDetails&qt=/replication&wt=javabin&version=2&command=details} status=0 QTime=1
         [junit4]   2> 750761 INFO  (qtp351238853-8846) [    x:collection1] o.a.s.c.S.Request [collection1]  webapp=/solr path=/replication params={_trace=getDetails&qt=/replication&wt=javabin&version=2&command=details} status=0 QTime=0
         [junit4]   2> 750769 WARN  (qtp738580099-8901) [    x:collection1] o.a.s.h.ReplicationHandler Exception while invoking 'details' method for replication on master 
         [junit4]   2> org.apache.solr.client.solrj.SolrServerException: Server refused connection at: http://127.0.0.1:TEST_PORT/solr
         [junit4]   2> 	at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:650) ~[java/:?]
         [junit4]   2> 	at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:255) ~[java/:?]
         [junit4]   2> 	at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:244) ~[java/:?]
         [junit4]   2> 	at org.apache.solr.client.solrj.SolrClient.request(SolrClient.java:1219) ~[java/:?]
         [junit4]   2> 	at org.apache.solr.handler.IndexFetcher.getDetails(IndexFetcher.java:1852) ~[java/:?]
      

      I looked at TestReplicationHandler Jenkins failure logs from the last couple days, and every single one has the same pattern: a WARN message from doTestRepeater() about failure to connect with a URL containing port TEST_PORT (rather than a numeric value).

      On the dev list Dawid Weiss wrote:

      I see this in TestReplicationHandler:

       /**
        * character copy of file using UTF-8. If port is non-null, will be
      substituted any time "TEST_PORT" is found.
        */
       private static void copyFile(File src, File dst, Integer port,
      boolean internalCompression) throws IOException {
         BufferedReader in = new BufferedReader(new InputStreamReader(new
      FileInputStream(src), StandardCharsets.UTF_8));
         Writer out = new OutputStreamWriter(new FileOutputStream(dst),
      StandardCharsets.UTF_8);
      
         for (String line = in.readLine(); null != line; line = in.readLine()) {
      
           if (null != port)
             line = line.replace("TEST_PORT", port.toString());
      

      So it seems port is allowed to be null and then won't be substituted.
      This looks like a bug in the test scaffolding: this situation
      shouldn't be allowed; if a port cannot be acquired the test should
      fail much sooner?

      Attachments

        1. SOLR-12199.patch
          2 kB
          Steven Rowe

        Activity

          sarowe Steven Rowe added a comment -

          I attached a patch that includes the test port on the repeater SolrInstance constructor (previously was specified as null), and also insures that the master port is set as the test port prior to copying all non-master config files (this was already done in a few places, but not all).

          I beasted 100 iterations of TestReplicationHandler with the patch, 31 of which failed for various reasons, and the WARN log entries about TEST_PORT did not occur in any of the logs.

          Committing shortly.

          sarowe Steven Rowe added a comment - I attached a patch that includes the test port on the repeater SolrInstance constructor (previously was specified as null), and also insures that the master port is set as the test port prior to copying all non-master config files (this was already done in a few places, but not all). I beasted 100 iterations of TestReplicationHandler with the patch, 31 of which failed for various reasons, and the WARN log entries about TEST_PORT did not occur in any of the logs. Committing shortly.

          Commit 1d8313ca8de2b9f5297b337f3156079be270dc6d in lucene-solr's branch refs/heads/branch_7x from steve_rowe
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=1d8313c ]

          SOLR-12199: TestReplicationHandler.doTestRepeater(): TEST_PORT interpolation failure: Server refused connection at: http://127.0.0.1:TEST_PORT/solr

          jira-bot ASF subversion and git services added a comment - Commit 1d8313ca8de2b9f5297b337f3156079be270dc6d in lucene-solr's branch refs/heads/branch_7x from steve_rowe [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=1d8313c ] SOLR-12199 : TestReplicationHandler.doTestRepeater(): TEST_PORT interpolation failure: Server refused connection at: http://127.0.0.1:TEST_PORT/solr

          Commit 5c37b07a3d53e64c2f0cebd33eb7024d693d62f5 in lucene-solr's branch refs/heads/master from steve_rowe
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=5c37b07 ]

          SOLR-12199: TestReplicationHandler.doTestRepeater(): TEST_PORT interpolation failure: Server refused connection at: http://127.0.0.1:TEST_PORT/solr

          jira-bot ASF subversion and git services added a comment - Commit 5c37b07a3d53e64c2f0cebd33eb7024d693d62f5 in lucene-solr's branch refs/heads/master from steve_rowe [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=5c37b07 ] SOLR-12199 : TestReplicationHandler.doTestRepeater(): TEST_PORT interpolation failure: Server refused connection at: http://127.0.0.1:TEST_PORT/solr

          People

            sarowe Steven Rowe
            sarowe Steven Rowe
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: