RunWithFakeThreshold with DisableParallelization #103423
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix #103247
Non-reproducible assertion errors often occur when tests are run in parallel. I suspect it is due to
RunWithFakeThreshold
affecting other tests. I hope that applyingDisableParallelization
to tests that useRunWithFakeThreshold
will avoid these errors.Detail
runtime/src/libraries/System.Runtime.Numerics/src/System/Numerics/BigIntegerCalculator.SquMul.cs
Line 333 in 6927fea
Multiplication of BigInteger has this assersion.
runtime/src/libraries/System.Runtime.Numerics/src/System/Numerics/BigIntegerCalculator.SquMul.cs
Lines 152 to 158 in 6927fea
MultiplyKaratsubaThreshold
is 32 and the field is immutable in normal execution.runtime/src/libraries/System.Runtime.Numerics/tests/BigInteger/multiply.cs
Lines 36 to 50 in 6927fea
RunWithFakeThreshold
rewritesMultiplyKaratsubaThreshold
to 8.Flow of assertion (my guess)
For the sake of explanation, let
{a}
denote a Span of length a. For example,{8}
is a Span of length 8.Normal
Parallel