Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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) { | |
|
chanli
2016/06/02 23:32:52
Just a thought: could we re-use some code from dis
lijeffrey
2016/06/27 22:15:43
This whole file should probably be refactored , we
| |
| 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 if (! jQuery.isEmptyObject(tryJobCulprit)) { | |
| 360 var build_number = result.try_job.try_job_key.split('/')[2]; // try _job_key would look like: 'master_name/builder_name/build_number'. | |
| 361 tableString += '<td rowspan="' + rowspan + '"><a href="' + findit.bu ilderUrl + '/builds/' + build_number + '">' + build_number + '</a></td>'; | |
| 362 var review_url = tryJobCulprit.url || tryJobCulprit.review_url || (f indit.defaultGitBaseUrl + tryJobCulprit.revision); | |
| 363 tableString += '<td rowspan="' + rowspan + '"><a href="' + review_ur l + '">' + tryJobCulprit.commit_position || tryJobCulprit.revision + '</a></td>' ; | |
| 364 | |
| 365 } else { | |
| 366 tableString += '<td colspan="2" rowspan="' + rowspan + '">' + findit .tryjobStatusMessageMap[tryJob.status] + '</td>'; | |
| 367 } | |
| 368 | |
| 369 tableString += '<td rowspan="' + rowspan + '">'; | |
| 370 tableString += '<li>Swarming task skipped for forced reruns by admins. </li>'; | |
| 371 if (tryJob.try_job_url) { | |
| 372 tableString += '<li>For try job details: <a href="' + tryJob.try_job _url+ '">' + tryJob.try_job_build_number + '</a></li>'; | |
| 373 } | |
| 374 tableString += '</td>'; | |
| 375 | |
| 376 tableString += generateHeuristicCulpritCls(result.heuristic_analysis.s uspected_cls, result.supported); | |
| 377 tableString += '</tr>'; | |
| 378 }); | |
| 379 | |
| 380 $('#unclassified_failures_table tbody').append(tableString); | |
| 381 $('#unclassified_failures_admins').removeClass('not-display'); | |
| 382 } | |
| 383 } | |
| 384 | |
| 348 $(document).ready(function() { | 385 $(document).ready(function() { |
| 349 if (!findit.analysisCompleted) { | 386 if (!findit.analysisCompleted) { |
| 350 $('#status_message').text('running, will refresh in 5 seconds...'); | 387 $('#status_message').text('running, will refresh in 5 seconds...'); |
| 351 $('#status_message').attr('class', 'running'); | 388 $('#status_message').attr('class', 'running'); |
| 352 setTimeout(function() { | 389 setTimeout(function() { |
| 353 {% if show_debug_info %} | 390 {% if show_debug_info %} |
| 354 window.location.href = 'build-failure?url=' + findit.buildUrl + '&debu g=1'; | 391 window.location.href = 'build-failure?url=' + findit.buildUrl + '&de bug=1'; |
| 355 {% else %} | 392 {% else %} |
| 356 window.location.href = 'build-failure?url=' + findit.buildUrl; | 393 window.location.href = 'build-failure?url=' + findit.buildUrl; |
| 357 {% endif %} | 394 {% endif %} |
| 358 }, 5000); | 395 }, 5000); |
| 359 } else { | 396 } else { |
| 360 if (findit.analysisFailed) { | 397 if (findit.analysisFailed) { |
| 361 $('#status_message').text('error'); | 398 $('#status_message').text('error'); |
| 362 $('#status_message').attr('class', 'error'); | 399 $('#status_message').attr('class', 'error'); |
| 363 } else { | 400 } else { |
| 364 // TODO: use another style when no culprit CL is found. | 401 // TODO: use another style when no culprit CL is found. |
| 365 $('#status_message').text('completed'); | 402 $('#status_message').text('completed'); |
| 366 $('#status_message').attr('class', 'completed'); | 403 $('#status_message').attr('class', 'completed'); |
| 367 | 404 |
| 368 $('.triage').click(triageAnalysisResult); | 405 $('.triage').click(triageAnalysisResult); |
| 369 | 406 |
| 370 if (!jQuery.isEmptyObject(findit.analysisResult)) { | 407 if (!jQuery.isEmptyObject(findit.analysisResult)) { |
| 371 $.each(findit.analysisResult, function(step_name, step_results) { | 408 $.each(findit.analysisResult, function(step_name, step_results) { |
| 372 $.each(step_results.results, function(category, results) { | 409 $.each(step_results.results, function(category, results) { |
| 373 if (category == 'reliable_failures') { | 410 if (category == 'reliable_failures') { |
| 374 {% if show_debug_info %} | 411 {% if show_debug_info %} |
| 375 displayReliableFailures(step_name, results); | 412 displayReliableFailures(step_name, results); |
| 376 {% else %} | 413 {% else %} |
| 377 displayReliableFailuresToSheriffs(step_name, results); | 414 displayReliableFailuresToSheriffs(step_name, results); |
| 378 {% endif %} | 415 {% endif %} |
| 379 } else if (category == 'unclassified_failures') { | 416 } else if (category == 'unclassified_failures') { |
| 417 {% if show_debug_info %} | |
| 418 displayUnclassifiedFailuresToAdmins(step_name, results); | |
| 419 {% else %} | |
| 380 displayUnclassifiedFailures(step_name, results); | 420 displayUnclassifiedFailures(step_name, results); |
| 381 } else if (category == 'flaky_failures') { | 421 {% endif %} |
| 382 displayFlakyFailures(step_name, results); | 422 } else if (category == 'flaky_failures') { |
| 383 } else { | 423 displayFlakyFailures(step_name, results); |
| 384 alert('Unrecongnizable category of test results, please file a bug for it.'); | 424 } else { |
| 385 } | 425 alert('Unrecongnizable category of test results, please file a bug for it.'); |
| 426 } | |
| 386 }); | 427 }); |
| 387 }); | 428 }); |
| 388 } else { | 429 } else { |
| 389 $('#triage-and-table').text('no failure is found'); | 430 $('#triage-and-table').text('no failure is found'); |
| 390 } | 431 } |
| 391 | 432 |
| 392 if (findit.analysisCorrect == 'True') { | 433 if (findit.analysisCorrect == 'True') { |
| 393 $('.thumb-up').addClass('triaged').removeClass('triage'); | 434 $('.thumb-up').addClass('triaged').removeClass('triage'); |
| 394 } else if (findit.analysisCorrect == 'False') { | 435 } else if (findit.analysisCorrect == 'False') { |
| 395 $('.thumb-down').addClass('triaged').removeClass('triage'); | 436 $('.thumb-down').addClass('triaged').removeClass('triage'); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 425 <div> | 466 <div> |
| 426 Master: {{master_name}}<br> | 467 Master: {{master_name}}<br> |
| 427 Builder: <a href="https://build.chromium.org/p/{{master_name}}/builders/{{bu ilder_name}}">{{builder_name}}</a><br> | 468 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> | 469 Build Number: <a href="https://build.chromium.org/p/{{master_name}}/builders /{{builder_name}}/builds/{{build_number}}">{{build_number}}</a> |
| 429 </div> | 470 </div> |
| 430 <br> | 471 <br> |
| 431 | 472 |
| 432 <b>Heuristic analysis info:</b> | 473 <b>Heuristic analysis info:</b> |
| 433 <div id="analysis_info"> | 474 <div id="analysis_info"> |
| 434 status: <span id="status_message"></span> | 475 status: <span id="status_message"></span> |
| 435 {% if show_debug_info %} | 476 {% if show_debug_info %} |
| 436 {% if pipeline_status_path %} | 477 {% if pipeline_status_path %} |
| 437 <a href="{{pipeline_status_path}}">pipeline</a> | 478 <a href="{{pipeline_status_path}}">pipeline</a> |
| 479 {% endif %} | |
| 480 <br> | |
| 481 Requested: {{analysis_request_time | default('N/A', true)}}<br> | |
| 482 {% if analysis_duration %} | |
| 483 Duration: {{analysis_duration}} seconds. <br> | |
| 484 {% else %} | |
| 485 Started: {{analysis_start_time | default('N/A', true)}}<br> | |
| 486 {% endif %} | |
| 487 Updated: {{analysis_update_time}}<br> | |
| 438 {% endif %} | 488 {% 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> | 489 </div> |
| 449 <br> | 490 <br> |
| 450 | 491 |
| 451 {% if analysis_completed %} | 492 {% if analysis_completed %} |
| 452 <b>Findit result:</b> | 493 <b>Findit result:</b> |
| 453 {% if analysis_failed %} | 494 {% if analysis_failed %} |
| 454 <span class="error">No result because of some error in analysis!</span> | 495 <span class="error">No result because of some error in analysis!</span> |
| 455 {% else %} | 496 {% else %} |
| 456 <div id="triage-and-table"> | 497 <div id="triage-and-table"> |
| 457 <div id="analysis_result"> | 498 <div id="analysis_result"> |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 542 | 583 |
| 543 <div id="unclassified_failures" class='not-display'> | 584 <div id="unclassified_failures" class='not-display'> |
| 544 <b>Unclassified failures</b> | 585 <b>Unclassified failures</b> |
| 545 <table id="unclassified_failures_table"> | 586 <table id="unclassified_failures_table"> |
| 546 <thead> | 587 <thead> |
| 547 <tr> | 588 <tr> |
| 548 <th rowspan="3" title="Failed step name" width="150px">Step</t h> | 589 <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> | 590 <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> | 591 <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> | 592 <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> | 593 <th rowspan="3" title="The reason we're not sure about the res ult">Reason</th> |
| 553 <th colspan="4">Suspected CLs</th> | 594 <th colspan="4">Suspected CLs</th> |
| 554 </tr> | 595 </tr> |
| 555 <tr> | 596 <tr> |
| 556 <th colspan="4">Heuristic Analysis Result</th> | 597 <th colspan="4">Heuristic Analysis Result</th> |
| 557 </tr> | 598 </tr> |
| 558 <tr> | 599 <tr> |
| 559 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th> | 600 <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> | 601 <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> | 602 <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> | 603 <th title="Why this CL is related to the failure">Hints</th> |
| 563 </tr> | 604 </tr> |
| 564 </thead> | 605 </thead> |
| 565 <tbody> | 606 <tbody> |
| 566 </tbody> | 607 </tbody> |
| 567 </table> | 608 </table> |
| 568 <br> | 609 <br> |
| 569 </div> | 610 </div> |
| 570 </div> | 611 </div> |
| 571 | 612 |
| 613 <div id="unclassified_failures_admins" class='not-display'> | |
| 614 <b>Unclassified failures</b> | |
| 615 <table id="unclassified_failures_table"> | |
| 616 <thead> | |
| 617 <tr> | |
| 618 <th rowspan="3" title="Failed step name" width="150px">Step</t h> | |
| 619 <th rowspan="3" title="Failed test name" width="300px">Test(s) </th> | |
| 620 <th rowspan="3" title="The build cycle in which the step start ed to fail">First Failure</th> | |
| 621 <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th> | |
| 622 <th colspan="8">Suspected CLs</th> | |
| 623 </tr> | |
| 624 <tr> | |
| 625 <th colspan="3">Try Job Result</th> | |
| 626 <th colspan="5">Heuristic Analysis Result</th> | |
| 627 </tr> | |
| 628 <tr> | |
| 629 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th> | |
| 630 <th title="Git commit position/hash">Commit</th> | |
| 631 <th title="Information about related swarming rerun and try jo b">Swarming rerun and<br>Try Job Info</th> | |
| 632 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th> | |
| 633 <th title="Git commit position/hash">Commit</th> | |
| 634 <th title="The higher score, the more suspected">Score (<a cla ss="score-info" href="javascript:">?</a>)</th> | |
| 635 <th title="Why this CL is related to the failure">Hints</th> | |
| 636 </tr> | |
| 637 </thead> | |
| 638 <tbody> | |
| 639 </tbody> | |
| 640 </table> | |
| 641 <br> | |
| 642 </div> | |
| 643 | |
| 572 <div class="thumbs-up-down"> | 644 <div class="thumbs-up-down"> |
| 573 <b>Feedback on Findit result:</b><br> | 645 <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> | 646 <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> | 647 <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> | 648 </div> |
| 577 </div> | 649 </div> |
| 578 {% endif %} | 650 {% endif %} |
| 579 {% endif %} | 651 {% endif %} |
| 580 | 652 |
| 581 {% if show_triage_help_button %} | 653 {% if show_triage_help_button %} |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 618 appearing in the failure log. (eg: file.h was changed and | 690 appearing in the failure log. (eg: file.h was changed and |
| 619 file_unittest.cc or file_impl.cc appeared in the log.)</li> | 691 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 | 692 <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 | 693 dependency appears in the failure log. (eg: third_party/dep |
| 622 was changed in src/DEPS and third_party/dep/f.cpp appeared | 694 was changed in src/DEPS and third_party/dep/f.cpp appeared |
| 623 in the log.)</li> | 695 in the log.)</li> |
| 624 </ul> | 696 </ul> |
| 625 (More rules will be added when implemented.) | 697 (More rules will be added when implemented.) |
| 626 </div> | 698 </div> |
| 627 </body> | 699 </body> |
| OLD | NEW |