Commit eba8fab
committed
BUG: Pin AdaptiveNonLocalMeansDenoisingImageFilterTest1 to single work unit
itkAdaptiveNonLocalMeansDenoisingImageFilter::ThreadedGenerateData scatter-
writes m_RicianBiasImage at neighborhood-offset indices (centerIndex +
patchOffset) that cross work-unit boundaries, so multiple work units perform
unsynchronized SetPixel on the same shared pixels. The data race is benign at
low thread contention but, under CPU oversubscription (ctest -j8), preemption
widens the window and yields nondeterministic output: the test fails the
baseline comparison intermittently (ImageError != 0), yet passes in isolation.
Verified: with the default work-unit count the test fails 50-100% of -j8 runs;
pinned to a single work unit it passes 100% (6/6) under the same load and
matches the baseline (which reflects the race-free result).
Pin the test filter to one work unit for determinism until the filter's scatter
is made race-free (the proper long-term fix belongs in the filter, not the test;
tracked in #6419).1 parent a21cf82 commit eba8fab
1 file changed
Lines changed: 4 additions & 0 deletions
File tree
- Modules/Filtering/AdaptiveDenoising/test
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
118 | 122 | | |
119 | 123 | | |
120 | 124 | | |
| |||
0 commit comments