The stress test is to identify the flaky-ness within the test; and assuming any changes to the test may have introduced the flaky-ness. It's about paying the cost upfront or later when the test is determined to be flaky. If 25+ tests have been changed in a PR, the cost of running stress test for those; and gating the PR for so long. Knowing how much pain it causes to fix a flaky test after a certain/long duration of time; I am +1 for doing this change.
On Tue, Mar 3, 2020 at 10:06 AM Dan Smith <dsm...@pivotal.io> wrote: > What's the current timeout for StressNewTest? Maybe if we just up the > threshold to 100 tests or so and up the timeout to match we can catch > pretty much all PRs. > > I'm not sure why the job is flagging more tests than it should. It looks > like at some point @rhoughon changed it to read the merge base from some > file created by concourse as an optimization [1] - I suspect maybe that > file is inaccurate? > > I originally wrote this job. It's definitely not a panacea, it will only > catch a new flaky test if > - the test is really flaky (likely to fail more than 1/50 times) > - the change actually happened in the test file itself, and not the > product or some other test file. > > [1] > > https://github.com/apache/geode/commit/4c06ba4625e69d44a5165aa9f2fccddfc064de87 > > -Dan > > On Sun, Mar 1, 2020 at 9:00 PM Owen Nichols <onich...@pivotal.io> wrote: > > > We don’t tend to look too closely at successful PR checks to see whether > > they actually checked anything at all. > > > > One example I found is > > > https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-pr/jobs/StressNewTestOpenJDK11/builds/5957 > > < > > > https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-pr/jobs/StressNewTestOpenJDK11/builds/5957 > > >: > > 32 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. > > > > Here are 92 more examples (url’s omitted for brevity — use the example > > above as a template and just replace the last 4 digits): > > 26 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6243) > > 26 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6249) > > 26 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6402) > > 27 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6262) > > 27 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6430) > > 27 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6439) > > 27 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6449) > > 27 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6454) > > 27 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6458) > > 27 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6459) > > 28 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6224) > > 28 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6441) > > 28 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6448) > > 28 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6452) > > 29 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6102) > > 29 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6177) > > 30 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5939) > > 30 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5940) > > 30 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5949) > > 30 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6473) > > 31 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5953) > > 31 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6187) > > 31 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6470) > > 31 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6471) > > 31 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6474) > > 31 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6475) > > 32 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5958) > > 32 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6173) > > 32 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6236) > > 32 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6237) > > 32 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6242) > > 33 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6246) > > 33 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6248) > > 33 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6250) > > 33 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6251) > > 33 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6254) > > 33 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6255) > > 34 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6139) > > 34 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6141) > > 34 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6264) > > 34 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6266) > > 34 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6271) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6142) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6143) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6277) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6309) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6413) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6414) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6419) > > 35 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6420) > > 36 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6144) > > 36 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6146) > > 36 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6147) > > 36 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6310) > > 36 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6326) > > 36 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6329) > > 36 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6330) > > 40 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6159) > > 40 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6160) > > 40 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6188) > > 41 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6440) > > 41 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6480) > > 41 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6483) > > 43 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6190) > > 44 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5768) > > 44 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5772) > > 46 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6191) > > 46 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6218) > > 46 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6219) > > 46 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6225) > > 46 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6244) > > 46 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6245) > > 48 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6129) > > 49 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5804) > > 51 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5877) > > 53 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5742) > > 54 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5757) > > 66 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6232) > > 66 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6233) > > 66 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6234) > > 66 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6259) > > 66 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6260) > > 66 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6278) > > 79 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6481) > > 103 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6493) > > 106 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6206) > > 106 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6207) > > 115 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 5769) > > 118 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6226) > > 721 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6197) > > 722 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6217) > > 722 is too many changed tests to stress test. Allowing this job to pass > > without stress testing. (build 6221) > > > > Please note, sometimes the number of files reported seems to be way > higher > > than it should be. For example > https://github.com/apache/geode/pull/4691 > > <https://github.com/apache/geode/pull/4691> shows exactly 1 test file > > touched, but > > > https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-pr/jobs/StressNewTestOpenJDK11/builds/6278 > > < > > > https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-pr/jobs/StressNewTestOpenJDK11/builds/6278 > > > > thinks it touched 66 test files. > > > > There’s currently no good data to predict how long StressNew will take, > it > > just depends on the mix of tests touched. I am aware of at least 4 cases > > (with less than 25 files) where the timeout was hit. In two of those > cases > > we re-ran with a longer timeout, and in two cases the PR author split up > > the PR into half a dozen smaller PRs to get around it. > > > > > > > On Mar 1, 2020, at 7:52 PM, Anthony Baker <aba...@pivotal.io> wrote: > > > > > > What percentage of PR’s are currently subject to the 25 test file rule? > > How many would be subject to the concourse timeout? > > > > > > I’d like to understand the scope of the impact for this change. > > > > > > Anthony > > > > > > > > >> On Mar 1, 2020, at 8:58 AM, Owen Nichols <onich...@pivotal.io> wrote: > > >> > > >> Impossible, no. Inconvenient, perhaps, but a small price to pay for > > being > > >> able to trust that green means green. > > >> > > >> With or without this proposed change, if anyone is having trouble > > getting > > >> their PR to pass StressNew, please bring it up on the dev list and we > > can > > >> discuss the appropriate solution on a case-by-case basis (e.g. > > increasing > > >> timeout, fixing the logic that identifies changed test files, > splitting > > >> into multiple PRs, authorizing an override, etc). > > >> > > >> On Sun, Mar 1, 2020 at 8:56 AM Dan Smith <dsm...@pivotal.io> wrote: > > >> > > >>> Won't this make it impossible to merge refactoring changes that touch > > a lot > > >>> of tests? > > >>> > > >>> -Dan > > >>> > > >>> On Sat, Feb 29, 2020, 12:37 PM Robert Houghton <rhough...@pivotal.io > > > > >>> wrote: > > >>> > > >>>> Yes, as it should > > >>>> > > >>>> On Sat, Feb 29, 2020, 12:25 Dan Smith <dsm...@pivotal.io> wrote: > > >>>> > > >>>>> Doesn't the build fail when concourse times out? > > >>>> > > >>>> > > >>> > > > > > > > >