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

Hoss Man commented on SOLR-13701:
---------------------------------

the beasting i've done locally so far indicates that between the SOLR-13464 
work arounds and this fix in this patch there is no need for the 2s retry...

but until we actually remove it will be hard to know if it's hiding other bugs 
- because we have very little visibility in to how often jenkins builds are 
passing *only* because of that retry (test logs aren't kept of tests that PASS, 
so we can't grep for that log message to try and find other situations/bugs we 
don't currently know about.

> JWTAuthPlugin calls authenticationFailure (which calls 
> HttpServletResponsesendError) before updating metrics - breaks tests
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-13701
>                 URL: https://issues.apache.org/jira/browse/SOLR-13701
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Hoss Man
>            Assignee: Hoss Man
>            Priority: Major
>         Attachments: SOLR-13701.patch
>
>
> The way JWTAuthPlugin is currently implemented, any failures are sent to the 
> remote client (via {{authenticationFailure(...)}} which calls 
> {{HttpServletResponsesendError(...)}}) *before* 
> {{JWTAuthPlugin.doAuthenticate(...)}} has a chance to update it's metrics 
> (like {{numErrors}} and {{numWrongCredentials}})
> This causes a race condition in tests where test threads can:
>  * see an error response/Exception before the server thread has updated 
> metrics (like {{numErrors}} and {{numWrongCredentials}})
>  * call white box methods like 
> {{SolrCloudAuthTestCase.assertAuthMetricsMinimums(...)}} to assert expected 
> metrics
> ...all before the server thread has ever gotten around to being able to 
> update the metrics in question.
> {{SolrCloudAuthTestCase.assertAuthMetricsMinimums(...)}} currently has some 
> {{"First metrics count assert failed, pausing 2s before re-attempt"}} 
> evidently to try and work around this bug, but it's still no garuntee that 
> the server thread will be scheduled before the retry happens.
> We can/should just fix JWTAuthPlugin to ensure the metrics are updated before 
> {{authenticationFailure(...)}} is called, and then remove the "pausing 2s 
> before re-attempt" logic from {{SolrCloudAuthTestCase}} - between this bug 
> fix, and the existing work around for SOLR-13464, there should be absolutely 
> no reason to "retry" reading hte metrics.
> (NOTE: BasicAuthPlugin has a similar {{authenticationFailure(...)}} method 
> that also calls {{HttpServletResponse.sendError(...)}} - but it already 
> (correctly) updates the error/failure metrics *before* calling that method.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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

Reply via email to