cgivre opened a new pull request, #3079:
URL: https://github.com/apache/drill/pull/3079

   ## Description
   
   The unit test suite dominates CI wall clock time, and `exec/java-exec` alone 
accounts for roughly half of it (~31 minutes across 577 classes).
   
   This splits each matrix entry three ways by test class name and runs two 
surefire forks per job:
   
   - **Sharding** — a `Select test shard` step maps `matrix.shard` to a 
`-Dtest=...` pattern list. Boundaries were picked from measured per-class 
times; the longest shard is about 11 minutes.
   - **`-DforkCount=2`** — several of the slowest classes are wall-clock bound 
rather than CPU bound (`TestTimedCallable` sleeps for 105 seconds; the RPC, SSL 
and graceful-shutdown tests wait on timeouts), so a second fork overlaps that 
idle time cheaply. Raising it further needs memory headroom — the vector tests 
fail with `OutOfMemoryException` under pressure.
   
   Two things worth calling out in review:
   
   - The patterns are spelled out one prefix at a time because surefire does 
**not** support character-class globs. `-Dtest='Test[A-F]*'` silently matches 
nothing and the build passes green having run no tests, so only `*` wildcards 
and comma separated lists are used.
   - The patterns are exhaustive over every test class in the repo, verified 
mechanically, so a newly added test always lands in a shard rather than being 
skipped without warning. Shard 3 repeats surefire's other default includes 
(`*Test`, `*Tests`, `*TestCase`) to pick up classes not named `Test*`. 
`TestFrameworkTest` matches shards 1 and 3 and runs twice — harmless, and far 
safer than a gap.
   
   `-Dsurefire.failIfNoSpecifiedTests=false` is needed because most modules 
match no pattern in a given shard.
   
   ## Documentation
   
   N/A — CI configuration only.
   
   ## Testing
   
   CI on this PR is the test: all nine jobs (3 Java versions x 3 shards) must 
pass, and between them they run the same set of test classes as the previous 
single job.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to