New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 632484 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug



Sign in to add a comment

Flakiness dashboard shows nothing because of invalid result files

Project Member Reported by wangxianzhu@chromium.org, Jul 28 2016

Issue description

Flakiness dashboard shows nothing because it fails to decode JSON results. 

Some JSON results are invalid, starting from middle of a valid JSON, for example, http://test-results.appspot.com/testfile?builder=WebKit%20Linux%20(dbg)&master=chromium.webkit&testtype=webkit_tests&name=results-small.json returns JSON starting with the following:

37409"],"results":[[100,"X"]],"times":[[100,0]]},"010.xml":{"expected":"SKIP","bugs":[" crbug.com/537409 "],"results":[[100,"X"]],"...
 
With the following patch I can show partial results by ignoring the invalid results:

diff --git a/appengine/test_results/static-dashboards/loader.js b/appengine/test_results/static-dashboards/loader.js
index fa7f9d0..df97913 100644
--- a/appengine/test_results/static-dashboards/loader.js
+++ b/appengine/test_results/static-dashboards/loader.js
@@ -147,6 +147,7 @@ loader.Loader.prototype = {
         var resultsFileLocation = pathToBuilderResultsFile(builder) + resultsFilename;
         loader.request(resultsFileLocation,
                 partial(function(loader, builder, xhr) {
+                    console.log(resultsFileLocation);
                     loader._handleResultsFileLoaded(builder, xhr.responseText);
                 }, this, builder),
                 partial(function(loader, builder, xhr) {
@@ -176,7 +177,14 @@ loader.Loader.prototype = {
     },
     _processResultsJSONData: function(builder, fileData)
     {
-        var builds = JSON.parse(fileData);
+        try {
+            var builds = JSON.parse(fileData);
+        } catch (e) {
+            console.log(builder);
+            console.log(fileData.substring(0, 100));
+            console.log(e);
+            return;
+        }
 
         if (builder.builderName == 'version' || builder.builderName == 'failure_map')
              return;

Comment 2 by jpar...@google.com, Jul 28 2016

Cc: nishanths@google.com
+nishanths who just made changes to this
Issue 632485 has been merged into this issue.
Summary: Flakiness dashboard shows nothing because of invalid result files (was: Flakiness dashboard shows nothing because invalid result files)
Labels: Infra-Troopers
Owner: nishanths@google.com
Status: Assigned (was: Available)
Assigning to nishanths@ since he's looking into it. Feel free to bounce back to me (or the current trooper) if it turns out unrelated to your change.
This happens on multiple URLs. You can open flakiness_dashboard.html with the patch in #1 applied to see the URLs containing bad results.
Status: Fixed (was: Assigned)
Flakiness dashboard is back up too: http://test-results.appspot.com/dashboards/flakiness_dashboard.html. 
Status: Assigned (was: Fixed)
This occurs again. Console log:

VM213:1 Uncaught SyntaxError: Unexpected token s in JSON at position 3000239_processResultsJSONData @ loader.js:179_handleResultsFileLoaded @ loader.js:161(anonymous function) @ loader.js:150(anonymous function) @ base.js:45xhr.onreadystatechange @ loader.js:54
VM214:1 Uncaught SyntaxError: Unexpected token , in JSON at position 1_processResultsJSONData @ loader.js:179_handleResultsFileLoaded @ loader.js:161(anonymous function) @ loader.js:150(anonymous function) @ base.js:45xhr.onreadystatechange @ loader.js:54
VM215:1 Uncaught SyntaxError: Unexpected token , in JSON at position 0_processResultsJSONData @ loader.js:179_handleResultsFileLoaded @ loader.js:161(anonymous function) @ loader.js:150(anonymous function) @ base.js:45xhr.onreadystatechange @ loader.js:54
VM216:1 Uncaught SyntaxError: Unexpected token t in JSON at position 3000000_processResultsJSONData @ loader.js:179_handleResultsFileLoaded @ loader.js:161(anonymous function) @ loader.js:150(anonymous function) @ base.js:45xhr.onreadystatechange @ loader.js:54
VM217:1 Uncaught SyntaxError: Unexpected token [ in JSON at position 3000000_processResultsJSONData @ loader.js:179_handleResultsFileLoaded @ loader.js:161(anonymous function) @ loader.js:150(anonymous function) @ base.js:45xhr.onreadystatechange @ loader.js:54
loader.js:59 GET http://test-results.appspot.com/testfile?builder=WebKit%20Win%20-%20WPTServe&master=chromium.fyi&testtype=webkit_tests&name=results-small.json 404 (Not Found)loader.request @ loader.js:59_loadResultsFileForBuilder @ loader.js:148_loadResultsFiles @ loader.js:130_loadNext @ loader.js:120_loadBuilders @ loader.js:125_loadNext @ loader.js:120load @ loader.js:100(anonymous function) @ flakiness_dashboard.js:1602
VM218:1 Uncaught SyntaxError: Unexpected token , in JSON at position 0_processResultsJSONData @ loader.js:179_handleResultsFileLoaded @ loader.js:161(anonymous function) @ loader.js:150(anonymous function) @ base.js:45xhr.onreadystatechange @ loader.js:54
VM219:1 Uncaught SyntaxError: Unexpected token ] in JSON at position 3000001
Nishanth, I think you rolled out a change yesterday?  Please take a look ASAP.

(And, once resolved, can you also get a bug on file to add monitoring)
Looking into this.
Issue 638967 has been merged into this issue.
Labels: -Pri-1 Pri-0
We should consider rolling back at this point. :)
Applied the patch from Comment 1 for a temporary fix. 

The dashboard is back up: http://test-results.appspot.com/dashboards/flakiness_dashboard.html. However the failing JSON will not be included in the dashboard statistics.

Looking at a permanent fix now.


Labels: -Pri-0 Pri-1
Labels: -Infra-Troopers
Status: Fixed (was: Assigned)

Sign in to add a comment