patsonluk opened a new pull request, #1939:
URL: https://github.com/apache/solr/pull/1939

   https://issues.apache.org/jira/browse/SOLR-16890
   
   # Description
   
   The test cases addd in https://github.com/apache/solr/pull/1782 quite 
frequently (~50%) triggers exceptions like below 
   
   ```
   javax.net.ssl.SSLHandshakeException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
valid certification path to requested target
        at 
__randomizedtesting.SeedInfo.seed([E4EC6C5CCCED4A1C:F7AAD286F82B4C34]:0)
        ...
           at 
java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:572)
        at 
java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:201)
        at 
java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:168)
        at 
org.apache.solr.search.TestCoordinatorRole.testConfigset(TestCoordinatorRole.java:626)
        ...
   ```
   
   This is due to the fact that the plain java `URL`, `HttpURLConnection` used 
does not handle the SSL configuration properly, and it appears that the test 
case could trigger with/without SSL , and when SSL is enabled, the test case 
would fail with above exception.
   
   This could be reproduced locally by
   ```
   ./gradlew :solr:core:test --tests 
"org.apache.solr.search.TestCoordinatorRole.testConfigset" -Ptests.jvms=4 
-Ptests.haltonfailure=false "-Ptests.jvmargs=-XX:TieredStopAtLevel=1 
-XX:+UseParallelGC -XX:ActiveProcessorCount=1 -XX:ReservedCodeCacheSize=120m" 
-Ptests.seed=E4EC6C5CCCED4A1C -Ptests.multiplier=2 -Ptests.badapples=false 
-Ptests.file.encoding=US-ASCII
   ```
   
   # Solution
   
   It's tricky to properly set up the HttpURLConnection to handle the SSL 
requests. As described in the issue, we cannot use the `Http2SolrClient` 
directly as cache response header (that we need to verify on) gets dropped.
   
   Therefore we will use the `HttpSolrClient` and call the `getHttpClient` to 
get the properly configured client for the requests.
   
   # Tests
   
   Fixing the test case
   
   # Checklist
   
   Please review the following and check all that apply:
   
   - [x] I have reviewed the guidelines for [How to 
Contribute](https://wiki.apache.org/solr/HowToContribute) and my code conforms 
to the standards described there to the best of my ability.
   - [x] I have created a Jira issue and added the issue ID to my pull request 
title.
   - [ ] I have given Solr maintainers 
[access](https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork)
 to contribute to my PR branch. (optional but recommended)
   - [x] I have developed this patch against the `main` branch.
   - [ ] I have run `./gradlew check`.
   - [ ] I have added tests for my changes.
   - [ ] I have added documentation for the [Reference 
Guide](https://github.com/apache/solr/tree/main/solr/solr-ref-guide)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

Reply via email to