Closed Bug 956672 Opened 8 years ago Closed 8 years ago

Publish gaiatest html report when running on TBPL

Categories

(Firefox OS Graveyard :: Gaia::UI Tests, defect)

Other
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: zcampbell, Assigned: jgriffin)

References

Details

Attachments

(3 files)

Publishing the HTML report on TBPL will help greatly with transparency into Gu test failures, both for Sheriffs and developers.

bug 949954 generates the report but does not expose it to TBPL users. This bug is to upload/store it somewhere and then link to it from TBPL interface.
Jonathan: Is it possible for TBPL to publish results anywhere? I'm under the impression that it's not, but hoping you'll know definitively.
Flags: needinfo?(jgriffin)
It is possible, yes.  We currently are trying to do this with logcats, but I see it isn't quite working:

https://tbpl.mozilla.org/php/getParsedLog.php?id=32705590&tree=Cedar&full=1

09:20:59     INFO - Copy/paste: /builds/slave/test/build/venv/bin/python /builds/slave/test/build/venv/bin/blobberc.py -u https://blobupload.elasticbeanstalk.com -a /builds/slave/test/oauth.txt -b cedar -d /builds/slave/test/build/blobber_upload_dir
09:20:59     INFO -  (blobuploader) - INFO - Open directory for files ...
09:20:59     INFO -  (blobuploader) - INFO - Uploading /builds/slave/test/build/blobber_upload_dir/emulator-5554.log ...
09:20:59     INFO -  (blobuploader) - INFO - Using https://blobupload.elasticbeanstalk.com
09:20:59     INFO -  (blobuploader) - INFO - Uploading, attempt #1.
09:21:03     INFO -  (blobuploader) - CRITICAL - Something went wrong on blobber!
09:21:03     INFO -  (blobuploader) - INFO - Upload failed. Trying again ...

Ahal, do you know why this is failing?

Whatever the answer is, once this is fixed, we should be able to use the same mechanism to upload HTML reports.
Flags: needinfo?(jgriffin) → needinfo?(ahalberstadt)
Weird, no I do not. It was working at some point in December though.. I'll see if I can track down what changed.
Flags: needinfo?(ahalberstadt)
There's a traceback on the ash branch:
https://tbpl.mozilla.org/php/getParsedLog.php?id=32046578&tree=Ash&full=1#error0

14:32:41     INFO -  (blobuploader) - INFO - Uploading, attempt #1.
14:32:53     INFO -  (blobuploader) - CRITICAL - Unexpected error in client: Traceback (most recent call last):
14:32:53     INFO -    File "/builds/slave/test/build/venv/bin/blobberc.py", line 87, in upload_file
14:32:53     INFO -      ret = post_file(host, auth, filename, branch, hashalgo, blobhash)
14:32:53     INFO -    File "/builds/slave/test/build/venv/bin/blobberc.py", line 151, in post_file
14:32:53     INFO -      verify=cert.where())
14:32:53     INFO -    File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/requests/api.py", line 88, in post
14:32:53     INFO -      return request('post', url, data=data, **kwargs)
14:32:53     INFO -    File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/requests/api.py", line 44, in request
14:32:53     INFO -      return session.request(method=method, url=url, **kwargs)
14:32:53     INFO -    File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 335, in request
14:32:53     INFO -      resp = self.send(prep, **send_kwargs)
14:32:53     INFO -    File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 438, in send
14:32:53     INFO -      r = adapter.send(request, **kwargs)
14:32:53     INFO -    File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/requests/adapters.py", line 327, in send
14:32:53     INFO -      raise ConnectionError(e)
14:32:53     INFO -  ConnectionError: HTTPSConnectionPool(host='blobupload.elasticbeanstalk.com', port=443): Max retries exceeded with url: /blobs/sha512/210b959b0d45c8b110629e28aa39a93e22d26d43ecb583167e24ffe7f5ca00cec98cc43d605c03b01eb7700952781ff8020132c380ad522863202244f1a4997c (Caused by <class 'httplib.BadStatusLine'>: '')
14:32:53     INFO -  (blobuploader) - INFO - Done attempting.

Rail, do you know why this might be happening?
Flags: needinfo?(rail)
Depends on: 958056
I filed bug 958056 to track the blobber issue, so canceling needinfo here.
Flags: needinfo?(rail)
(In reply to Andrew Halberstadt [:ahal] from comment #4)
> HTTPSConnectionPool(host='blobupload.elasticbeanstalk.com', port=443): Max
> retries exceeded with url:
> /blobs/sha512/
> 210b959b0d45c8b110629e28aa39a93e22d26d43ecb583167e24ffe7f5ca00cec98cc43d605c0
> 3b01eb7700952781ff8020132c380ad522863202244f1a4997c (Caused by <class
> 'httplib.BadStatusLine'>: '')
> 14:32:53     INFO -  (blobuploader) - INFO - Done attempting.
>
> Rail, do you know why this might be happening?

It looks like Elastic beanstalk automatically recreated the environment, but something went wrong. Blobber server uses a hack to install python 2.7 and mod_wsgi compiled against 2.7 as a part of normal EB installation process (https://github.com/catlee/blobber/blob/master/.ebextensions/application.config).

I checked the logs and found this:

[Thu Jan 09 14:54:02 2014] [error] SyntaxError: invalid syntax
[Thu Jan 09 14:55:24 2014] [error] [client 10.134.84.132] mod_wsgi (pid=1647, process='wsgi', application='127.0.0.1|'): Failed to parse WSGI script file '/opt/python/current/app/application.py'.
[Thu Jan 09 14:55:24 2014] [error] [client 10.134.84.132] mod_wsgi (pid=1647): Exception occurred processing WSGI script '/opt/python/current/app/application.py'.
[Thu Jan 09 14:55:24 2014] [error]   File "/opt/python/current/app/application.py", line 99
[Thu Jan 09 14:55:24 2014] [error]     meta_dict.update({k: request.forms[k] for k in fields})

and (from memory)

... [notice] Apache/2.2.23 (Unix) DAV/2 mod_wsgi/xx Python/2.6.x configured -- resuming normal operations
 
I recreated the beanstalk environment and it looks like the server is back to normal now.
 
I'll file a bug for this issue.
No longer depends on: 958056
Assignee: nobody → jgriffin
This should work for the mozharness side; looks like we'll also need a buildbot patch to set blob_upload_branch.
Attachment #8358164 - Flags: review?(ahalberstadt)
And here's the buildbot patch.
Attachment #8358167 - Flags: review?(aki)
Comment on attachment 8358167 [details] [diff] [review]
Add blobber upload support to gaia-ui-test jobs,

I think we need to have the gaia_unit.py script take blobber args for this to work, though.
Attachment #8358167 - Flags: review?(aki) → review+
Comment on attachment 8358167 [details] [diff] [review]
Add blobber upload support to gaia-ui-test jobs,

Er, n/m, this is marionette.
Attachment #8358164 - Flags: review?(ahalberstadt) → review+
https://hg.mozilla.org/build/mozharness/rev/6c2c1c8274b6

It doesn't matter which patch goes into production first; we're already trying to upload logcat files from gaia-ui-test jobs and failing, since gaia-ui-test jobs weren't configured for blobber in buildbot-configs.
in production
This is in production now, but failing with:

13:04:33     INFO -  (blobuploader) - INFO - Uploading /builds/slave/test/build/blobber_upload_dir/output.html ...
13:04:33     INFO -  (blobuploader) - INFO - Using https://blobupload.elasticbeanstalk.com
13:04:33     INFO -  (blobuploader) - INFO - Uploading, attempt #1.
13:04:37     INFO -  (blobuploader) - CRITICAL - File type not allowed on server!
13:04:37     INFO -  (blobuploader) - INFO - Blobserver returned 403, bailing...

Why do we prohibit HTML files?  Is this something we can change?
Flags: needinfo?(rail)
That was one of the security requirements to explicitly allow file extensions. We can add HTML, I don't see any reason why not.

The config is here:

https://github.com/catlee/blobber/blob/master/blobber/config.py#L11

If you want to change the mime type returned by S3 then you also need to tweak https://github.com/catlee/blobber/blob/master/blobber/config.py#L23
Flags: needinfo?(rail)
Once the changes are landed I'll need to deploy them.
Comment on attachment 8359472 [details] [review]
Link to Github pull-request: https://github.com/catlee/blobber/pull/7

LGTM, waiting for catlee to merge.
Attachment #8359472 - Flags: review?(rail) → review+
catlee, can you merge ^
Flags: needinfo?(catlee)
I merged it. @Rail, please update it on EB.
Flags: needinfo?(catlee)
I'm going to deploy the changes in a bit.
It should be live now.
Yes, it works now!  See e.g., 

http://mozilla-releng-blobs.s3.amazonaws.com/blobs/b2g-inbound/sha512/4903c919edb48b6a60738af23fbb3f4cf40d0723233bd5b7f678a804434fc39ee9480dda8a8196fa480ae21de3803c030bd34837cc7cba22464bc9e4d6994922

The link to the log is printed in the lower-right pane of TBPL when a gaia-ui-test job is selected.

Thanks for your help, Rail.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
\o/
I know it sounds childish, but I'm so happy to see this kid' working :-)
(In reply to Mihai Tabara [:mtabara] from comment #25)
> I know it sounds childish, but I'm so happy to see this kid' working :-)

me too! :)
It looks great, thanks!
+1 great stuff!
Duplicate of this bug: 940582
You need to log in before you can comment on or make changes to this bug.