AHeise commented on pull request #13551:
URL: https://github.com/apache/flink/pull/13551#issuecomment-740196009


   > The randomization here only applies to tests that use 
`MiniClusterResource`, right?
   > I think this is a significant limitation.
   > 
   > Can we overcome it by reading some system property at the time of 
`ConfigOption` creation?
   > 
   > ```
   >    public static final ConfigOption<Boolean> ENABLE_UNALIGNED =
   >            ConfigOptions.key("execution.checkpointing.unaligned")
   >                    .booleanType()
   >                    
.defaultValue(System.getProperty("execution.checkpointing.unaligned", false)) 
// <-- here
   > ```
   > 
   > The property can be set either
   > 
   >     * by maven/CI at the very beginning to a random value (seed="nanoTime")
   > 
   >     * or by the developer or to a fixed value
   > 
   > 
   > I think it will be easier to reason about if it's set for the whole build 
(and logged in the beginning).
   > 
   > WDYT?
   
   That was the very first approach but we didn't like that this means that all 
tests run only with that particular configuration, which has two issues:
   - For a large enough test matrix, a certain configuration may happen very 
rarely. Assuming we have 10 different configuration options (aligned, unaligned 
with 0, 10s, 1m timeout x 0, 1kb, 1m size limit), then we have 10% chance for a 
particular combination to occur. But even when running 10 tests, you have 3.4% 
chance of a specific combination not occurring. If you add that to rarely 
occurring instabilities that are even now hard to detect, the overall goal of 
having a good coverage is probably not reached. It becomes worse if we have 
more interdependent value combinations related to checkpointing like different 
DSTL settings.
   - Even for more commonly occurring issues that happen while refactoring/new 
feature, it's disadvantage to just have one configuration for all tests. You 
have to manually cycle through the relevant settings through setting the system 
property to "force" your luck. Here having more or less all combinations being 
executed by the same AZP run on your feature branch will probably already find 
you quite a few issues.
   
   Btw (but this is an orthogonal discussion), I'd like to bind the 
randomization seed to commit id instead of timestamp, such that it's easy for 
us to debug into any issue (checkout particular commit and go). However, the 
current implementation might not be ideal in that regard 
(`EnvironmentalInformation` might not be updated without a full build).


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to