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

ASF subversion and git services commented on LUCENE-9110:
---------------------------------------------------------

Commit e06ad4cfb587e1bb69a80c0b531df0e52c2da89b in lucene-solr's branch 
refs/heads/master from Uwe Schindler
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=e06ad4c ]

LUCENE-9110: Refactor stack analysis in tests to use generalized LuceneTestCase 
methods that use StackWalker



> Use StackWalker in tests instead of iterating through StackTraceElement arrays
> ------------------------------------------------------------------------------
>
>                 Key: LUCENE-9110
>                 URL: https://issues.apache.org/jira/browse/LUCENE-9110
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: general/test
>            Reporter: Uwe Schindler
>            Assignee: Uwe Schindler
>            Priority: Major
>             Fix For: master (9.0), 8.5
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Followup of LUCENE-9109:
> There are a lot of tests (especially around IndexWriter) that look into stack 
> traces to inject failures or check that some methods were called in their 
> call stack.
> This issue will refactor all those tests by adding a few methods to 
> LuceneTestCase that make it easy to verify if some method call/class is in 
> stack trace. On master (Java 11) we can use StackWalker to do this checks, 
> which has a speedup of sometimes >>2 times (depending on how deep you dive 
> into call stack).
> There are a few tests (only 3) that do more complex stack trace analysis. 
> Those should be refactored at some point. For now I added a deprecated method 
> to get the whole StackTrace in Java 11, which is still 2 times faster than 
> using an Exception.
> For branch 8.x i will apply the same patch, just the LuceneTestCase methods 
> use the old "Java 8" way to inspect stack trace using the thread's stack 
> trace (which is very expensive).
> So this issue is mainly about refactoring the tests to use a common method 
> pattern to check the existence of stack frames.
> One important thing is: Using StackWalker makes sure that the stack is 
> "correct". Stacks from Thread or Exception may miss some frames, as it does 
> not deoptimize the code. So depending on JVMs and optimizations (e.g. Graal), 
> call stacks may change if we still use old code for analysis. This is no 
> longer an issue for Java 8, but may be in future.



--
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