jeho-rpls opened a new pull request, #16401:
URL: https://github.com/apache/lucene/pull/16401
Fixes #16397.
The tests asserted that rollback() returns within 10 seconds, which needed
big segments (4 x 12k docs, beam width 250) to stay reliable, about 50s per
test.
Changes:
* Instead of asserting on elapsed time, each test now asserts through
InfoStream that the graph build never ran to completion. To make that
deterministic at any size, the test InfoStream holds the merge thread at the
"build graph" message until IndexWriter#abortMerges has marked the merge
aborted, signaled by the "now wait for N running merge/s to abort" message.
* The abort exception is not asserted on: it is swallowed as expected
control flow, and a small unchecked build can finish without throwing, since
merge outputs are only checked for abort about once per written megabyte per
file.
* MergingHnswGraphBuilder now emits a completion message like the other two
builders ("addVectors [...)", "merge completed: ..."), so the graph join path
has a completion signal to assert on.
* Each test asserts on the "build graph" start message to pin its intended
merge path (full rebuild, graph join, concurrent with 2 workers).
* Segments shrink to 1k docs per segment, beam width to 100, with
tinySegmentsThreshold=0 so a graph is always built.
Testing:
* With the abort check removed, all three tests fail on completion messages.
The unchecked builds finished in 0.6-1.0s at this size, under the old 10s
limit, so shrinking alone would have left the timing assertion passing.
* -Dtests.iters=20: 60/60 pass.
* Suite time: 63s before, 1.6s after on my machine (about 154s on the
machine in #16397).
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]