[ 
https://issues.apache.org/jira/browse/LUCENE-8106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Uwe Schindler reopened LUCENE-8106:
-----------------------------------

I changed the script on Policeman Jenkins a bit to use the "Tools Environment" 
plugin to define an env var with ANT in correct version. I used this env var 
instaed of the hardcoded path added by Steve.

It seems to work now. There is still the issue, that GIT is not installed and 
not even used by Jenkins (Jenkins uses JGit for checkouts). This is currently 
no issue on the Linux node (it has cmd-line git), but all other nodes - 
including Windows - do not have a running Git command line. I will definitely 
not install one, becaus ethat makes maintenance even harder (4 operating 
systems, millions of Java versions,...).

So I have one small question to [~steve_rowe]: Can't we make a variant of the 
script for Jenkins that does not deal with Git at all? For reproduing the 
failure directly after running the main build job there is no need to change 
branches or merge in changes. We just leave the checkout as-is. As there are no 
external forces changing the checkout, why would we need GIT?

So let's add a "replacement" option "--no-git" instead of "--no-fetch", that 
completely disables GIT in the python script. After doing this it's easy to 
setup with Jenkins and it would also possibly work with Windows Jenkins. I can 
help with adding a n Ant target to call the reproducer instead of doing it 
directly from Jenkins (like "ant nighly-smoke").

For committers that want to reproduce failures locally, the script does all 
maintenance and Git magic to reproduce Jenkins behaviour.

> Add script to attempt to reproduce failing tests from a Jenkins log
> -------------------------------------------------------------------
>
>                 Key: LUCENE-8106
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8106
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Steve Rowe
>            Assignee: Steve Rowe
>            Priority: Major
>             Fix For: master (8.0), 7.3
>
>         Attachments: LUCENE-8106-part2.patch, LUCENE-8106.patch, 
> LUCENE-8106.patch
>
>
> This script will be runnable from a downstream job triggered by an upstream 
> failing Jenkins job, passing log location info between the two.
> The script will also be runnable manually from a developer's cmdline.
> From the script help:
> {noformat}
> Usage:
>      python3 -u reproduceJenkinsFailures.py URL
> Must be run from a Lucene/Solr git workspace. Downloads the Jenkins
> log pointed to by the given URL, parses it for Git revision and failed
> Lucene/Solr tests, checks out the Git revision in the local workspace,
> groups the failed tests by module, then runs
> 'ant test -Dtest.dups=5 -Dtests.class="*.test1[|*.test2[...]]" ...'
> in each module of interest, failing at the end if any of the runs fails.
> To control the maximum number of concurrent JVMs used for each module's
> test run, set 'tests.jvms', e.g. in ~/lucene.build.properties
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to