Skip to content

Skip Quick Access recompute on no-op resize#4090

Open
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-resize-race
Open

Skip Quick Access recompute on no-op resize#4090
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-resize-race

Conversation

@vogella

@vogella vogella commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

During the Quick Access popup's initial layout, every shell resize re-triggered the proposal computation, and each recompute cancels the job still in flight. On Windows the native search field produces a burst of layout resizes, so the computation for freshly typed text kept getting cancelled and the result table was never populated, which is the intermittent failure of testPreviousChoicesAvailableForExtension.

A resize only affects results when it changes how many rows fit, so the dialog now records the row count it last computed for and skips the resize-triggered recompute when that count is unchanged, removing the cancellation path. This also drops the redundant recompute on cosmetic resizes during normal use. Finally it fixes an accidental ~83 minute timeout (TIMEOUT * 1000) in that test's dialog-init wait.

Fixes #4009

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Test Results

   861 files  ±0     861 suites  ±0   46m 38s ⏱️ + 1m 7s
 8 034 tests ±0   7 790 ✅ +1  243 💤 ±0  1 ❌  - 1 
20 536 runs  ±0  19 880 ✅ +1  655 💤 ±0  1 ❌  - 1 

For more details on these failures, see this check.

Results for commit 95c98c9. ± Comparison against base commit a4171b1.

♻️ This comment has been updated with latest results.

QuickAccessContents armed a recompute on every shell resize during the
popup's initial layout, and each recompute cancels the in-flight compute
job. On Windows the native search field triggers a burst of initial
layout resizes, so the compute job scheduled for freshly typed text was
repeatedly cancelled and the table was never refreshed. This is the
intermittent failure in
QuickAccessDialogTest.testPreviousChoicesAvailableForExtension.

A resize only changes the results by changing how many rows fit, so
track the row count used for the last compute and skip the
resize-triggered update when it is unchanged. Remaining resizes are
coalesced with a trailing-edge debounce so a burst (for example
scrollbar oscillation during initial layout) collapses into a single
update once the layout settles, instead of cancelling the in-flight
compute job repeatedly.

Also fix an accidental ~83 minute timeout (TIMEOUT * 1000) in that
test's dialog-init wait.

Fixes eclipse-platform#4009
@vogella vogella force-pushed the lv/quickaccess-resize-race branch from 72c969b to 95c98c9 Compare June 12, 2026 17:04
@vogella

vogella commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

The test failure due to the process kill on the Mac seems unrelated, maybe some ongoing releng work or just a infrastructure hickup? cc @HannesWell

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

QuickAccessDialogTest.testPreviousChoicesAvailableForExtension fails

1 participant