[ 
https://issues.apache.org/jira/browse/SOLR-16458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18069726#comment-18069726
 ] 

Chris M. Hostetter commented on SOLR-16458:
-------------------------------------------

[~epugh]: {{5d2eb05506af12759caa414ba7ac063e311a3247}} added 
{{HealthCheckHandlerTest.testV1FailureResponseIncludesStatusField}} which has a 
75% failure rate overall on jenkins runs (with every failing seed reproducing 
100% reliably)

Example failures...

{noformat}
./gradlew clean test --tests 
HealthCheckHandlerTest.testV1FailureResponseIncludesStatusField 
-Dtests.seed=FB8D93B9FE9B6C77 -Dtests.multiplier=3 -Dtests.locale=bez 
-Dtests.timezone=US/Arizona -Dtests.asserts=true -Dtests.file.encoding=UTF-8
...
   >     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([FB8D93B9FE9B6C77:61B51599ED9CA06D]:0)
   >         at 
java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:956)
   >         at 
java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133)
   >         at 
org.apache.solr.handler.admin.HealthCheckHandlerTest.testV1FailureResponseIncludesStatusField(HealthCheckHandlerTest.java:177)
   >         at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
   >         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1763)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
   >         at 
com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:80)
   >         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
   >         at 
org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
   >         at 
org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
   >         at 
org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
   >         at 
org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
   >         at 
org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
   >         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
   >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
   >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
   >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
   >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
   >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   >         at 
org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
   >         at 
com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:80)
   >         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
   >         at 
org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
   >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   >         at 
org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
   >         at 
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
   >         at 
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
   >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   >         at 
org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
   >         at 
org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
   >         at 
org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
   >         at 
org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
   >         at 
org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
   >         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
   >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
   >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850)
   >         at java.base/java.lang.Thread.run(Thread.java:1583)
   > 
   >         Caused by:
   >         javax.net.ssl.SSLHandshakeException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
valid certification path to requested target
   >             at 
java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)
   >             at 
java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378)
   >             at 
java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
   >             at 
java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316)
   >             at 
java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1318)
   >             at 
java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1195)
   >             at 
java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1138)
   >             at 
java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393)
   >             at 
java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476)
   >             at 
java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1273)
   >             at 
java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1260)
   >             at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
   >             at 
java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:1205)
   >             at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
   >             at 
java.net.http/jdk.internal.net.http.common.SSLFlowDelegate.lambda$executeTasks$3(SSLFlowDelegate.java:1134)
   >             at 
java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(HttpClientImpl.java:177)
   >             at 
java.net.http/jdk.internal.net.http.common.SSLFlowDelegate.executeTasks(SSLFlowDelegate.java:1129)
   >             at 
java.net.http/jdk.internal.net.http.common.SSLFlowDelegate.doHandshake(SSLFlowDelegate.java:1095)
   >             at 
java.net.http/jdk.internal.net.http.common.SSLFlowDelegate$Reader.processData(SSLFlowDelegate.java:494)
   >             at 
java.net.http/jdk.internal.net.http.common.SSLFlowDelegate$Reader$ReaderDownstreamPusher.run(SSLFlowDelegate.java:269)
   >             at 
java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182)
   >             at 
java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
   >             at 
java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
   >             at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
   >             at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
   >             at java.base/java.lang.Thread.run(Thread.java:1583)
   >             at 
java.base/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)
....
{noformat}

> Cosmetic improvements and migration to JAX-RS ("node" APIs)
> -----------------------------------------------------------
>
>                 Key: SOLR-16458
>                 URL: https://issues.apache.org/jira/browse/SOLR-16458
>             Project: Solr
>          Issue Type: Sub-task
>          Components: v2 API
>    Affects Versions: 9.1, 10.0
>            Reporter: Jason Gerlowski
>            Priority: Major
>              Labels: newdev, pull-request-available
>          Time Spent: 14h
>  Remaining Estimate: 0h
>
> As mentioned on SOLR-15781, the v2 API currently has an experimental 
> designation, and the community has expressed an interest in using this period 
> to update our v2 endpoints to be more REST-ful and consistent.  The current 
> plan is to follow the specific changes laid out in [this 
> spreadsheet|https://docs.google.com/spreadsheets/d/1HAoBBFPpSiT8mJmgNZKkZAPwfCfPvlc08m5jz3fQBpA/edit?usp=sharing],
>  though of course nothing there is set in stone and there are still warts to 
> be worked out.
> While we're touching the code for these endpoints, we should also convert 
> them to JAX-RS framework definitions.  (This was initially tracked as a 
> separate effort - see SOLR-16370 - but the edit that were required ended up 
> overlapping so significantly with the "cosmetic" improvements here that in 
> practice it almost always makes sense to do the two together.)
> This ticket plans to tackle making the changes required for Solr's "node" 
> APIs: those commands or actions that (primarily) affect the receiving node 
> only such as log-level changes, setting and removing node roles, etc.  These 
> are described in detail in the spreadsheet linked above, but summarized in 
> the table below for convenience and ease of tracking.
> *Cosmetic Changes and JAX-RS Conversion*
> ||API Name||Original Form||Desired Form||Status||Volunteer||
> |-List Log Levels-|-GET /api/node/logging-|–GET 
> /api/node/logging/levels–|-Finished-|-Calvince Otieno-|
> |-Update Log Level-|-GET /api/node/logging?set=className:WARN-|-PUT 
> /api/node/logging/levels-|-In Progress-|-Calvince Otieno-|
> |-Retrieve Log Messages-|-GET /api/node/logging?since=123456789-|-GET 
> /api/node/logging/messages?since=123456789-|-Finished-|-Calvince Otieno-|
> |-Update LogWatcher Threshold-|-GET /api/node/logging?threshold=WARN-|-PUT 
> /api/node/logging/messages/threshold-|-Finished-|-Calvince Otieno-|
> |Add Role to Node|POST /api/cluster \{"add-role": \{...\}\}|PUT 
> /api/nodes/nodeName/roles/roleName|Open|N/A|
> |Remove Role from Node|POST /api/cluster \{"remove-role": \{...\}\}|DELETE 
> /api/nodes/nodeName/roles/roleName|Open|N/A|
> *JAX-RS Conversion Only*
> ||API Name||Endpoint||Status||Volunteer||
> |List Threads on Node|GET /api/node/threads|Open|N/A|
> Some helpful links related to these changes these changes. Should help get 
> any interested newcomers started! 
> * For detailed information on Solr's current and desired v2 APIs see the 
> spreadsheet 
> [here|https://docs.google.com/spreadsheets/d/1HAoBBFPpSiT8mJmgNZKkZAPwfCfPvlc08m5jz3fQBpA/edit?usp=sharing]
> * [Discussion of how APIs work in Solr 
> (video)|https://www.youtube.com/watch?v=iIpvfXBjDog]
> * [Step-by-step guide to creating 
> APIs|https://issues.apache.org/jira/browse/SOLR-15737?focusedCommentId=17617923&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17617923]
>  using the JAX-RS v2 API framework
> * [Example PR for a similar change|https://github.com/apache/solr/pull/1679]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to