|
|
Chromium Code Reviews
Description[Findit] scripts to calculate confidence level of Findit results.
BUG=614565
Committed: https://chromium.googlesource.com/infra/infra/+/6effc89c309b05cb4cac942be391c7399375204d
Patch Set 1 #Patch Set 2 : . #
Total comments: 23
Patch Set 3 : Address comments #Patch Set 4 : . #Patch Set 5 : calculate with suspected_cls #Patch Set 6 : Merge code and add data model. #
Total comments: 26
Patch Set 7 : address comments. #Patch Set 8 : Change model name #
Total comments: 14
Patch Set 9 : address comments #Patch Set 10 : rebase #
Dependent Patchsets: Messages
Total messages: 27 (7 generated)
chanli@chromium.org changed reviewers: + lijeffrey@chromium.org, stgao@chromium.org
ptal. These scripts just print out the numbers, I'll create the data model to save the data in next step.
https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:27: SCORE_CHANGE_RELATED_LINE = 1 related file? https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:29: CORRECT_RESULT_STATUSES = [result_status.FOUND_CORRECT, For failures in a row on the same builder, do we include only the first one or all of them? Should we deduplicate? https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:37: for hint_score in hints.itervalues(): built-in function "max" should do the same thing here. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:42: if __name__ == '__main__': Move the logic to a function and call it from the __main__. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:50: analysis_query = WfAnalysis.query( Unused? https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:92: highest_score = _GetHighestScoreInHints(suspected_cl['hints']) This is per-failure, right? https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py:59: len(analysis.suspected_cls) == 1): What if the try-job finds nothing while analysis.suspected_cls is from heuristic?
https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:37: for hint_score in hints.itervalues(): On 2016/06/17 18:38:59, stgao wrote: > built-in function "max" should do the same thing here. +1 https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:80: # Bails out if there are multiple suspected_cls nit: comment ends with . Also add bails out if there are no suspected_cls too https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:101: total_result_number_dict[score] != 0 else None) nit: I think you can just do if total_Result_number_dict[score] else None https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py:61: if data.try_job_type == 'compile': just to be safe i'd add data.try_job_type.lower() == 'compile' same for the other ones
https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:37: for hint_score in hints.itervalues(): On 2016/06/17 18:38:59, stgao wrote: > built-in function "max" should do the same thing here. +1 https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:80: # Bails out if there are multiple suspected_cls nit: comment ends with . Also add bails out if there are no suspected_cls too https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:101: total_result_number_dict[score] != 0 else None) nit: I think you can just do if total_Result_number_dict[score] else None https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py:61: if data.try_job_type == 'compile': just to be safe i'd add data.try_job_type.lower() == 'compile' same for the other ones
https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:27: SCORE_CHANGE_RELATED_LINE = 1 On 2016/06/17 18:38:59, stgao wrote: > related file? Done. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:29: CORRECT_RESULT_STATUSES = [result_status.FOUND_CORRECT, On 2016/06/17 18:38:59, stgao wrote: > For failures in a row on the same builder, do we include only the first one or > all of them? Should we deduplicate? Done. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:37: for hint_score in hints.itervalues(): On 2016/06/17 19:43:11, lijeffrey wrote: > On 2016/06/17 18:38:59, stgao wrote: > > built-in function "max" should do the same thing here. > > +1 Done. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:42: if __name__ == '__main__': On 2016/06/17 18:38:59, stgao wrote: > Move the logic to a function and call it from the __main__. Done. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:50: analysis_query = WfAnalysis.query( On 2016/06/17 18:38:59, stgao wrote: > Unused? Done. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:80: # Bails out if there are multiple suspected_cls On 2016/06/17 19:43:11, lijeffrey wrote: > nit: comment ends with . Also add bails out if there are no suspected_cls too Done. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:92: highest_score = _GetHighestScoreInHints(suspected_cl['hints']) On 2016/06/17 18:38:59, stgao wrote: > This is per-failure, right? We just consider failures with only one suspected cl. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:101: total_result_number_dict[score] != 0 else None) On 2016/06/17 19:43:11, lijeffrey wrote: > nit: I think you can just do if total_Result_number_dict[score] else None Done. https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py:59: len(analysis.suspected_cls) == 1): On 2016/06/17 18:38:59, stgao wrote: > What if the try-job finds nothing while analysis.suspected_cls is from > heuristic? Added a check of data.culprits https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_try_job.py:61: if data.try_job_type == 'compile': On 2016/06/17 19:43:11, lijeffrey wrote: > just to be safe i'd add data.try_job_type.lower() == 'compile' same for the > other ones Done.
https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:92: highest_score = _GetHighestScoreInHints(suspected_cl['hints']) On 2016/06/17 22:01:28, chanli wrote: > On 2016/06/17 18:38:59, stgao wrote: > > This is per-failure, right? > > We just consider failures with only one suspected cl. In the current code, if the same culprit is responsible for 2+ failures in the same build, it will be counted 2+ times for the total result number and correct result number. Is that expected? Should we do per-build instead?
https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... File appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py (right): https://codereview.chromium.org/2072893002/diff/20001/appengine/findit/util_s... appengine/findit/util_scripts/remote_queries/check_confidence_level_heuristic.py:92: highest_score = _GetHighestScoreInHints(suspected_cl['hints']) On 2016/06/17 23:39:21, stgao wrote: > On 2016/06/17 22:01:28, chanli wrote: > > On 2016/06/17 18:38:59, stgao wrote: > > > This is per-failure, right? > > > > We just consider failures with only one suspected cl. > > In the current code, if the same culprit is responsible for 2+ failures in the > same build, it will be counted 2+ times for the total result number and correct > result number. > > Is that expected? Should we do per-build instead? Done.
lgtm
PTAL
https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/index... File appengine/findit/index.yaml (right): https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/index... appengine/findit/index.yaml:24: - name: status Why this has to be changed? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... File appengine/findit/model/cl_confidence.py (right): https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... appengine/findit/model/cl_confidence.py:8: class CLConfidence(ndb.Model): Should we versionize this model to keep track of improvement over time? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... appengine/findit/model/cl_confidence.py:32: Add another field for when the confidence data is updated? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... appengine/findit/model/cl_confidence.py:40: # }, Can we use another model to record the data? And use LocalStructedProperty instead of pure JsonProperty? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... File appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py (right): https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:84: float(result['correct']) / result['total'] if result['total'] else 0.0 Instead of 0.0, should we do -1 as of an N/A? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:104: if not original_cl_confidence or not original_result: The logic to merge both results and calculate the confidence is quite similar, could we extract and share with above? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:130: cl_confidences = CLConfidence.query().order(-CLConfidence.end_date).fetch(1) This query result won't be cached. Using VersionedModel could help. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:137: _last_cl_confidence, date_start, date_end, why prefix for last_cl_confidence? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:179: WfSuspectedCL.updated_time < date_end) What if the same suspect got included in one query, it got updated, and then it got included again in another run of the query? https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:202: if (build['approaches'] == [analysis_approach_type.TRY_JOB] or Explain why we need this check? The filter above already seems to scope the result to heuristic ones. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:235: if (build['approaches'] == [analysis_approach_type.HEURISTIC] or same here. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:310: args_dict = vars(parser.parse_args()) Hm, can we store the value to some destination var instead? parser.add_argument('-v', action='store_true', destination='var') args, options = parser.parse_args() print options.var https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:325: default_end_date = datetime.datetime.utcnow().replace( use time_util instead?
https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/index... File appengine/findit/index.yaml (right): https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/index... appengine/findit/index.yaml:24: - name: status On 2016/10/06 01:57:58, stgao (slow) wrote: > Why this has to be changed? For some reason the order of properties matters... It kept complaining about not finding the index, so I decided to modify the index. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... File appengine/findit/model/cl_confidence.py (right): https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... appengine/findit/model/cl_confidence.py:8: class CLConfidence(ndb.Model): On 2016/10/06 01:57:59, stgao (slow) wrote: > Should we versionize this model to keep track of improvement over time? That's already taken care of with the original implementation. Versionize it for caching. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... appengine/findit/model/cl_confidence.py:32: On 2016/10/06 01:57:59, stgao (slow) wrote: > Add another field for when the confidence data is updated? It seems not useful for me. I think end_date is sufficient. If you can think of any use of updated_time, I can add it. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/model... appengine/findit/model/cl_confidence.py:40: # }, On 2016/10/06 01:57:59, stgao (slow) wrote: > Can we use another model to record the data? And use LocalStructedProperty > instead of pure JsonProperty? Done. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... File appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py (right): https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:84: float(result['correct']) / result['total'] if result['total'] else 0.0 On 2016/10/06 01:57:59, stgao (slow) wrote: > Instead of 0.0, should we do -1 as of an N/A? Done. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:104: if not original_cl_confidence or not original_result: On 2016/10/06 01:57:59, stgao (slow) wrote: > The logic to merge both results and calculate the confidence is quite similar, > could we extract and share with above? Done. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:130: cl_confidences = CLConfidence.query().order(-CLConfidence.end_date).fetch(1) On 2016/10/06 01:57:59, stgao (slow) wrote: > This query result won't be cached. Using VersionedModel could help. Done. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:137: _last_cl_confidence, date_start, date_end, On 2016/10/06 01:57:59, stgao (slow) wrote: > why prefix for last_cl_confidence? typo... https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:179: WfSuspectedCL.updated_time < date_end) On 2016/10/06 01:57:59, stgao (slow) wrote: > What if the same suspect got included in one query, it got updated, and then it > got included again in another run of the query? Done. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:202: if (build['approaches'] == [analysis_approach_type.TRY_JOB] or On 2016/10/06 01:57:59, stgao (slow) wrote: > Explain why we need this check? The filter above already seems to scope the > result to heuristic ones. Removed. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:235: if (build['approaches'] == [analysis_approach_type.HEURISTIC] or On 2016/10/06 01:57:59, stgao (slow) wrote: > same here. Done. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:310: args_dict = vars(parser.parse_args()) On 2016/10/06 01:57:59, stgao (slow) wrote: > Hm, can we store the value to some destination var instead? > > parser.add_argument('-v', action='store_true', destination='var') > args, options = parser.parse_args() > print options.var Done. https://codereview.chromium.org/2072893002/diff/100001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:325: default_end_date = datetime.datetime.utcnow().replace( On 2016/10/06 01:57:59, stgao (slow) wrote: > use time_util instead? Done.
ptal
lgtm with nits. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... File appengine/findit/model/suspected_cl_confidence.py (right): https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:10: class ConfidenceInformation(ndb.Model): One more line above. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:22: 'confidence': self.confidence No need to add score here? https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:45: # Note: the confidence scores will be for all the CLs up until end_date, Should this be updated after the change as we discussed? https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:78: return confidences or cls() if version is None else confidences Use VersionedModel.Create to create new instance. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:95: if self.end_date <= end_date: Why we have this check? https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/util_... File appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py (right): https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:39: def _AddConfidenceInformation(result, score=None): nit: _Create* https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:259: for arg, value in args_dict.iteritems(): I'm still trying to figure out why we can't use the value set in the "dest"s above.
The CQ bit was checked by chanli@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from lijeffrey@chromium.org, stgao@chromium.org Link to the patchset: https://codereview.chromium.org/2072893002/#ps160001 (title: "address comments")
https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... File appengine/findit/model/suspected_cl_confidence.py (right): https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:10: class ConfidenceInformation(ndb.Model): On 2016/10/07 22:52:08, stgao (slow) wrote: > One more line above. Done. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:22: 'confidence': self.confidence On 2016/10/07 22:52:08, stgao (slow) wrote: > No need to add score here? This ToDict is for results, score is the key. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:45: # Note: the confidence scores will be for all the CLs up until end_date, On 2016/10/07 22:52:08, stgao (slow) wrote: > Should this be updated after the change as we discussed? Done. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:78: return confidences or cls() if version is None else confidences On 2016/10/07 22:52:08, stgao (slow) wrote: > Use VersionedModel.Create to create new instance. Done. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/model... appengine/findit/model/suspected_cl_confidence.py:95: if self.end_date <= end_date: On 2016/10/07 22:52:08, stgao (slow) wrote: > Why we have this check? I use this so that we can only save one version each day since the start_date and end_date will be the same. Although sometimes it's needed to update the data if something is wrong... https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/util_... File appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py (right): https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:39: def _AddConfidenceInformation(result, score=None): On 2016/10/07 22:52:08, stgao (slow) wrote: > nit: _Create* Done. https://codereview.chromium.org/2072893002/diff/140001/appengine/findit/util_... appengine/findit/util_scripts/remote_queries/calculate_confidence_scores.py:259: for arg, value in args_dict.iteritems(): On 2016/10/07 22:52:08, stgao (slow) wrote: > I'm still trying to figure out why we can't use the value set in the "dest"s > above. dest only changes the key from for example 'c' to 'compile'.
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: Infra Linux Trusty 64 Tester on luci.infra.try (JOB_FAILED, https://luci-milo.appspot.com/swarming/task/31ba4890a687f810) Infra Mac Tester on luci.infra.try (JOB_FAILED, https://luci-milo.appspot.com/swarming/task/31ba48904f872010) Infra Presubmit on luci.infra.try (JOB_FAILED, https://luci-milo.appspot.com/swarming/task/31ba4890ddccf710)
The CQ bit was checked by chanli@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from stgao@chromium.org, lijeffrey@chromium.org Link to the patchset: https://codereview.chromium.org/2072893002/#ps180001 (title: "rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== [Findit] scripts to calculate confidence level of Findit results. BUG=614565 ========== to ========== [Findit] scripts to calculate confidence level of Findit results. BUG=614565 Committed: https://chromium.googlesource.com/infra/infra/+/6effc89c309b05cb4cac942be391c... ==========
Message was sent while issue was closed.
Committed patchset #10 (id:180001) as https://chromium.googlesource.com/infra/infra/+/6effc89c309b05cb4cac942be391c... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
