Open marco-c opened 4 years ago
@jmaher do you know the answer to the main question: Given an "intermittent" classification for a failure, how can we tell if it was a "known intermittent" (already happened before) or a "new intermittent" (first time it was seen)? Do sheriffs classify these differently?
they are not classified differently- we can cross reference bug filing times and determine if it was filed within 12 hours of the job completing. It often happens that after the bugs are filed we find they are duplicated to an existing bug.
An idea to speed things up: if the classification is "intermittent CLASSIFICATION_BUG_ID" and CLASSIFICATION_BUG_ID is lower than the bug ID in the commit message, we can consider the intermittent to be pre-existing. If it is higher, we fallback to querying Bugzilla.
A good test case for this, test-linux1804-64-asan/opt-web-platform-tests-e10s-15 on https://treeherder.mozilla.org/#/jobs?repo=autoland&tochange=f67d2901bafdfb476860e7d6ca5bd4b7f8a71e80&fromchange=d025442980452a4250f7192ef1408cb93c8bd934&searchStr=test-linux1804-64-asan%2Fopt-web-platform-tests-e10s-15. It passed on the parent of the parent of 39cc23a7483ce4f73ac20e195b7cbd3f7d49851e, and failed in the 7th child. It didn't run on any of the pushes between them. It is thus considered as a possible regression of 39cc23a7483ce4f73ac20e195b7cbd3f7d49851e, with distance 9.
It looks like unfortunately this information is currently missing in ActiveData, so we have to wait for https://github.com/klahnakoski/ActiveData-ETL/issues/75 before being able to do this.
I think this is a good idea, and probably 95% complete.
For now, we only take into account 'not classified' and 'fixed by commit', https://github.com/mozilla/mozci/blob/f9ca3bee3ea1cd822e88aa1858b542c80ef6e5ac/mozci/push.py#L218. What should we do when the classification is 'intermittent'? Can we know from the classification if it was introduced in this push or a previous one? We could load the linked bug from Bugzilla and check when it was filed, or is there a faster way?