Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: appengine/findit/templates/build_failure.html

Issue 2026283002: [Findit] Adding logic to force try jobs regardless of bailout or previous results (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Addressing comments and rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <head> 2 <head>
3 <title>Build Failure</title> 3 <title>Build Failure</title>
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <link rel="stylesheet" href="/common.css"> 5 <link rel="stylesheet" href="/common.css">
6 <style> 6 <style>
7 .running { 7 .running {
8 color: #666666; 8 color: #666666;
9 background-color: #fffc6c; 9 background-color: #fffc6c;
10 border-color: #c5c56d; 10 border-color: #c5c56d;
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 338
339 tableString += generateHeuristicCulpritCls(result.heuristic_analysis.s uspected_cls, result.supported); 339 tableString += generateHeuristicCulpritCls(result.heuristic_analysis.s uspected_cls, result.supported);
340 tableString += '</tr>'; 340 tableString += '</tr>';
341 }); 341 });
342 342
343 $('#unclassified_failures_table tbody').append(tableString); 343 $('#unclassified_failures_table tbody').append(tableString);
344 $('#unclassified_failures').removeClass('not-display'); 344 $('#unclassified_failures').removeClass('not-display');
345 } 345 }
346 } 346 }
347 347
348 function displayUnclassifiedFailuresToAdmins(step_name, results) {
349 if (!jQuery.isEmptyObject(results)) {
350 var tableString = '';
351 $.each(results, function(index, result) {
352 tableString += '<tr>';
353 var rowspan = result.heuristic_analysis.suspected_cls.length > 0 ? res ult.heuristic_analysis.suspected_cls.length : 1;
354
355 tableString += generateCommonCellsForAllCategories(step_name, 'determi ned', index, result.tests, result.first_failure, result.last_pass, rowspan);
356
357 var tryJob = result.try_job;
358 var tryJobCulprit = tryJob.culprit;
359
360 if (! jQuery.isEmptyObject(tryJobCulprit)) {
361 var build_number = result.try_job.try_job_key.split('/')[2]; // try _job_key would look like: 'master_name/builder_name/build_number'.
362 tableString += '<td rowspan="' + rowspan + '"><a href="' + findit.bu ilderUrl + '/builds/' + build_number + '">' + build_number + '</a></td>';
363 var review_url = tryJobCulprit.url || tryJobCulprit.review_url || (f indit.defaultGitBaseUrl + tryJobCulprit.revision);
364 tableString += '<td rowspan="' + rowspan + '"><a href="' + review_ur l + '">' + tryJobCulprit.commit_position || tryJobCulprit.revision + '</a></td>' ;
365
366 } else {
367 tableString += '<td colspan="2" rowspan="' + rowspan + '">' + findit .tryjobStatusMessageMap[tryJob.status] + '</td>';
368 }
369
370 tableString += '<td rowspan="' + rowspan + '">';
371 tableString += '<li>Note: swarming tasks are skipped for forced reruns by admins.</li>';
372 if (tryJob.try_job_url) {
373 tableString += '<li>For try job details: <a href="' + tryJob.try_job _url+ '">' + tryJob.try_job_build_number + '</a></li>';
374 }
375 tableString += '</td>';
376
377 tableString += generateHeuristicCulpritCls(result.heuristic_analysis.s uspected_cls, result.supported);
378 tableString += '</tr>';
379 });
380
381 $('#unclassified_failures_table tbody').append(tableString);
382 $('#unclassified_failures_admins').removeClass('not-display');
383 }
384 }
385
348 $(document).ready(function() { 386 $(document).ready(function() {
349 if (!findit.analysisCompleted) { 387 if (!findit.analysisCompleted) {
350 $('#status_message').text('running, will refresh in 5 seconds...'); 388 $('#status_message').text('running, will refresh in 5 seconds...');
351 $('#status_message').attr('class', 'running'); 389 $('#status_message').attr('class', 'running');
352 setTimeout(function() { 390 setTimeout(function() {
353 {% if show_debug_info %} 391 {% if show_debug_info %}
354 window.location.href = 'build-failure?url=' + findit.buildUrl + '&debu g=1'; 392 window.location.href = 'build-failure?url=' + findit.buildUrl + '&de bug=1';
355 {% else %} 393 {% else %}
356 window.location.href = 'build-failure?url=' + findit.buildUrl; 394 window.location.href = 'build-failure?url=' + findit.buildUrl;
357 {% endif %} 395 {% endif %}
358 }, 5000); 396 }, 5000);
359 } else { 397 } else {
360 if (findit.analysisFailed) { 398 if (findit.analysisFailed) {
361 $('#status_message').text('error'); 399 $('#status_message').text('error');
362 $('#status_message').attr('class', 'error'); 400 $('#status_message').attr('class', 'error');
363 } else { 401 } else {
364 // TODO: use another style when no culprit CL is found. 402 // TODO: use another style when no culprit CL is found.
365 $('#status_message').text('completed'); 403 $('#status_message').text('completed');
366 $('#status_message').attr('class', 'completed'); 404 $('#status_message').attr('class', 'completed');
367 405
368 $('.triage').click(triageAnalysisResult); 406 $('.triage').click(triageAnalysisResult);
369 407
370 if (!jQuery.isEmptyObject(findit.analysisResult)) { 408 if (!jQuery.isEmptyObject(findit.analysisResult)) {
371 $.each(findit.analysisResult, function(step_name, step_results) { 409 $.each(findit.analysisResult, function(step_name, step_results) {
372 $.each(step_results.results, function(category, results) { 410 $.each(step_results.results, function(category, results) {
373 if (category == 'reliable_failures') { 411 if (category == 'reliable_failures') {
374 {% if show_debug_info %} 412 {% if show_debug_info %}
375 displayReliableFailures(step_name, results); 413 displayReliableFailures(step_name, results);
376 {% else %} 414 {% else %}
377 displayReliableFailuresToSheriffs(step_name, results); 415 displayReliableFailuresToSheriffs(step_name, results);
378 {% endif %} 416 {% endif %}
379 } else if (category == 'unclassified_failures') { 417 } else if (category == 'unclassified_failures') {
418 {% if show_debug_info %}
419 displayUnclassifiedFailuresToAdmins(step_name, results);
420 {% else %}
380 displayUnclassifiedFailures(step_name, results); 421 displayUnclassifiedFailures(step_name, results);
381 } else if (category == 'flaky_failures') { 422 {% endif %}
382 displayFlakyFailures(step_name, results); 423 } else if (category == 'flaky_failures') {
383 } else { 424 displayFlakyFailures(step_name, results);
384 alert('Unrecongnizable category of test results, please file a bug for it.'); 425 } else {
385 } 426 alert('Unrecongnizable category of test results, please file a bug for it.');
427 }
386 }); 428 });
387 }); 429 });
388 } else { 430 } else {
389 $('#triage-and-table').text('no failure is found'); 431 $('#triage-and-table').text('no failure is found');
390 } 432 }
391 433
392 if (findit.analysisCorrect == 'True') { 434 if (findit.analysisCorrect == 'True') {
393 $('.thumb-up').addClass('triaged').removeClass('triage'); 435 $('.thumb-up').addClass('triaged').removeClass('triage');
394 } else if (findit.analysisCorrect == 'False') { 436 } else if (findit.analysisCorrect == 'False') {
395 $('.thumb-down').addClass('triaged').removeClass('triage'); 437 $('.thumb-down').addClass('triaged').removeClass('triage');
(...skipping 29 matching lines...) Expand all
425 <div> 467 <div>
426 Master: {{master_name}}<br> 468 Master: {{master_name}}<br>
427 Builder: <a href="https://build.chromium.org/p/{{master_name}}/builders/{{bu ilder_name}}">{{builder_name}}</a><br> 469 Builder: <a href="https://build.chromium.org/p/{{master_name}}/builders/{{bu ilder_name}}">{{builder_name}}</a><br>
428 Build Number: <a href="https://build.chromium.org/p/{{master_name}}/builders /{{builder_name}}/builds/{{build_number}}">{{build_number}}</a> 470 Build Number: <a href="https://build.chromium.org/p/{{master_name}}/builders /{{builder_name}}/builds/{{build_number}}">{{build_number}}</a>
429 </div> 471 </div>
430 <br> 472 <br>
431 473
432 <b>Heuristic analysis info:</b> 474 <b>Heuristic analysis info:</b>
433 <div id="analysis_info"> 475 <div id="analysis_info">
434 status: <span id="status_message"></span> 476 status: <span id="status_message"></span>
435 {% if show_debug_info %} 477 {% if show_debug_info %}
436 {% if pipeline_status_path %} 478 {% if pipeline_status_path %}
437 <a href="{{pipeline_status_path}}">pipeline</a> 479 <a href="{{pipeline_status_path}}">pipeline</a>
480 {% endif %}
481 <br>
482 Requested: {{analysis_request_time | default('N/A', true)}}<br>
483 {% if analysis_duration %}
484 Duration: {{analysis_duration}} seconds. <br>
485 {% else %}
486 Started: {{analysis_start_time | default('N/A', true)}}<br>
487 {% endif %}
488 Updated: {{analysis_update_time}}<br>
438 {% endif %} 489 {% endif %}
439 <br>
440 Requested: {{analysis_request_time | default('N/A', true)}}<br>
441 {% if analysis_duration %}
442 Duration: {{analysis_duration}} seconds. <br>
443 {% else %}
444 Started: {{analysis_start_time | default('N/A', true)}}<br>
445 {% endif %}
446 Updated: {{analysis_update_time}}<br>
447 {% endif %}
448 </div> 490 </div>
449 <br> 491 <br>
450 492
451 {% if analysis_completed %} 493 {% if analysis_completed %}
452 <b>Findit result:</b> 494 <b>Findit result:</b>
453 {% if analysis_failed %} 495 {% if analysis_failed %}
454 <span class="error">No result because of some error in analysis!</span> 496 <span class="error">No result because of some error in analysis!</span>
455 {% else %} 497 {% else %}
456 <div id="triage-and-table"> 498 <div id="triage-and-table">
457 <div id="analysis_result"> 499 <div id="analysis_result">
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 584
543 <div id="unclassified_failures" class='not-display'> 585 <div id="unclassified_failures" class='not-display'>
544 <b>Unclassified failures</b> 586 <b>Unclassified failures</b>
545 <table id="unclassified_failures_table"> 587 <table id="unclassified_failures_table">
546 <thead> 588 <thead>
547 <tr> 589 <tr>
548 <th rowspan="3" title="Failed step name" width="150px">Step</t h> 590 <th rowspan="3" title="Failed step name" width="150px">Step</t h>
549 <th rowspan="3" title="Failed test name" width="300px">Test(s) </th> 591 <th rowspan="3" title="Failed test name" width="300px">Test(s) </th>
550 <th rowspan="3" title="The build cycle in which the step start ed to fail">First Failure</th> 592 <th rowspan="3" title="The build cycle in which the step start ed to fail">First Failure</th>
551 <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th> 593 <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th>
552 <th rowspan="3" title="The reason why we're not sure about thi s result">Reason</th> 594 <th rowspan="3" title="The reason we're not sure about the res ult">Reason</th>
553 <th colspan="4">Suspected CLs</th> 595 <th colspan="4">Suspected CLs</th>
554 </tr> 596 </tr>
555 <tr> 597 <tr>
556 <th colspan="4">Heuristic Analysis Result</th> 598 <th colspan="4">Heuristic Analysis Result</th>
557 </tr> 599 </tr>
558 <tr> 600 <tr>
559 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th> 601 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
560 <th title="Git commit position/hash">Commit</th> 602 <th title="Git commit position/hash">Commit</th>
561 <th title="The higher score, the more suspected">Score (<a cla ss="score-info" href="javascript:">?</a>)</th> 603 <th title="The higher score, the more suspected">Score (<a cla ss="score-info" href="javascript:">?</a>)</th>
562 <th title="Why this CL is related to the failure">Hints</th> 604 <th title="Why this CL is related to the failure">Hints</th>
563 </tr> 605 </tr>
564 </thead> 606 </thead>
565 <tbody> 607 <tbody>
566 </tbody> 608 </tbody>
567 </table> 609 </table>
568 <br> 610 <br>
569 </div> 611 </div>
570 </div> 612 </div>
571 613
614 <div id="unclassified_failures_admins" class='not-display'>
615 <b>Unclassified failures</b>
616 <table id="unclassified_failures_table">
617 <thead>
618 <tr>
619 <th rowspan="3" title="Failed step name" width="150px">Step</t h>
620 <th rowspan="3" title="Failed test name" width="300px">Test(s) </th>
621 <th rowspan="3" title="The build cycle in which the step start ed to fail">First Failure</th>
622 <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th>
623 <th colspan="8">Suspected CLs</th>
624 </tr>
625 <tr>
626 <th colspan="3">Try Job Result</th>
627 <th colspan="5">Heuristic Analysis Result</th>
628 </tr>
629 <tr>
630 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
631 <th title="Git commit position/hash">Commit</th>
632 <th title="Information about related swarming rerun and try jo b">Swarming rerun and<br>Try Job Info</th>
633 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
634 <th title="Git commit position/hash">Commit</th>
635 <th title="The higher score, the more suspected">Score (<a cla ss="score-info" href="javascript:">?</a>)</th>
636 <th title="Why this CL is related to the failure">Hints</th>
637 </tr>
638 </thead>
639 <tbody>
640 </tbody>
641 </table>
642 <br>
643 </div>
644
572 <div class="thumbs-up-down"> 645 <div class="thumbs-up-down">
573 <b>Feedback on Findit result:</b><br> 646 <b>Feedback on Findit result:</b><br>
574 <div class="triage thumb-up">Correct <img src="https://www.gstatic.com /images/icons/material/system/1x/thumb_up_black_24dp.png"/></div> 647 <div class="triage thumb-up">Correct <img src="https://www.gstatic.com /images/icons/material/system/1x/thumb_up_black_24dp.png"/></div>
575 <div class="triage thumb-down"><img src="https://www.gstatic.com/image s/icons/material/system/1x/thumb_down_black_24dp.png"/> Incorrect</div> 648 <div class="triage thumb-down"><img src="https://www.gstatic.com/image s/icons/material/system/1x/thumb_down_black_24dp.png"/> Incorrect</div>
576 </div> 649 </div>
577 </div> 650 </div>
578 {% endif %} 651 {% endif %}
579 {% endif %} 652 {% endif %}
580 653
581 {% if show_triage_help_button %} 654 {% if show_triage_help_button %}
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 appearing in the failure log. (eg: file.h was changed and 691 appearing in the failure log. (eg: file.h was changed and
619 file_unittest.cc or file_impl.cc appeared in the log.)</li> 692 file_unittest.cc or file_impl.cc appeared in the log.)</li>
620 <li>1: The CL rolled a dependency within src/DEPS and a file of that 693 <li>1: The CL rolled a dependency within src/DEPS and a file of that
621 dependency appears in the failure log. (eg: third_party/dep 694 dependency appears in the failure log. (eg: third_party/dep
622 was changed in src/DEPS and third_party/dep/f.cpp appeared 695 was changed in src/DEPS and third_party/dep/f.cpp appeared
623 in the log.)</li> 696 in the log.)</li>
624 </ul> 697 </ul>
625 (More rules will be added when implemented.) 698 (More rules will be added when implemented.)
626 </div> 699 </div>
627 </body> 700 </body>
OLDNEW
« no previous file with comments | « appengine/findit/handlers/test/handlers_util_test.py ('k') | appengine/findit/waterfall/analyze_build_failure_pipeline.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698