Commit aab59c3
Stress fixes: framerate/PerGroup timeouts, overlay tick race, DataGrid scroll poll (#397)
Three independent stress-flake fixes (Clusters T, O, C) per
INVESTIGATION.md follow-up to PR #396:
Cluster T — bump FixtureTimeout to 30s for three render-pump-heavy
fixtures whose budgets are tight on loaded CI runners but not
pathological:
- DataGridParityFixtures.HookPagingFramerateScroll
- AsyncResourceFramerateFixtures.DataGridEditMutation
- NativeDockingSmokeFixture.PerGroupDropTargetVisualDemo
Cluster O — fix race in ReconcileHighlightOverlay.RefreshOrAdd.
DispatcherQueueTimer.Stop() can't dequeue a Tick that the dispatcher
queue has already dispatched, so a stale tick can tear down a sprite
the refresh still wants alive. Now each refresh swaps in a fresh timer
with its own Tick lambda; the stale tick checks ReferenceEquals on
ah.Timer and bails when its identity no longer matches.
Cluster C — DataGrid_ScrollPopulatesData was relying on a fixed 800ms
Render(800) for the scroll-settle → fetch → realization chain (not
tracked by _renderPending). Now waits 800ms baseline (preserves the
fetch-trigger window so ScrollPop_MultipleFetches still triggers) then
polls cells for up to 3s.
Validated locally: all 27 OverlayLifecycle_* fixtures pass, all 5
ScrollPop_* sub-checks pass, 15x local stress on both fixtures
together is clean.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 9b33e44 commit aab59c3
5 files changed
Lines changed: 61 additions & 17 deletions
File tree
- src/Reactor/Hosting
- tests/Reactor.AppTests.Host/SelfTest/Fixtures
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
144 | 151 | | |
145 | | - | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
146 | 155 | | |
147 | 156 | | |
148 | 157 | | |
| |||
157 | 166 | | |
158 | 167 | | |
159 | 168 | | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
160 | 179 | | |
161 | 180 | | |
162 | 181 | | |
163 | 182 | | |
164 | | - | |
165 | 183 | | |
166 | 184 | | |
167 | 185 | | |
168 | 186 | | |
169 | 187 | | |
170 | | - | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
171 | 194 | | |
172 | 195 | | |
173 | 196 | | |
| |||
179 | 202 | | |
180 | 203 | | |
181 | 204 | | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
| 205 | + | |
186 | 206 | | |
187 | 207 | | |
188 | 208 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
417 | 417 | | |
418 | 418 | | |
419 | 419 | | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
420 | 424 | | |
421 | 425 | | |
422 | 426 | | |
| |||
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
265 | 270 | | |
266 | 271 | | |
267 | 272 | | |
| |||
Lines changed: 20 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
117 | 122 | | |
118 | | - | |
119 | 123 | | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
125 | 131 | | |
126 | 132 | | |
127 | 133 | | |
128 | 134 | | |
129 | 135 | | |
130 | 136 | | |
131 | 137 | | |
132 | | - | |
133 | | - | |
134 | | - | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
135 | 145 | | |
136 | 146 | | |
137 | 147 | | |
| |||
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1002 | 1002 | | |
1003 | 1003 | | |
1004 | 1004 | | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
1005 | 1010 | | |
1006 | 1011 | | |
1007 | 1012 | | |
| |||
0 commit comments