Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Analytics change breaks AppRTC test in WebRTC waterfall #467

Closed
phoglund opened this issue Feb 4, 2015 · 3 comments
Closed

The Analytics change breaks AppRTC test in WebRTC waterfall #467

phoglund opened this issue Feb 4, 2015 · 3 comments

Comments

@phoglund
Copy link
Contributor

phoglund commented Feb 4, 2015

I reverted the analytics change for now.
When bringing up the server on the bots after the analytics change:

INFO 2015-02-04 09:56:16,612 devappserver2.py:557] Skipping SDK update check.
WARNING 2015-02-04 09:56:16,622 simple_search_stub.py:1002] Could not read search indexes from /tmp/appengine.apprtc.chrome-bot/search_indexes
INFO 2015-02-04 09:56:16,623 api_server.py:138] Starting API server at: http://localhost:58086
INFO 2015-02-04 09:56:16,634 dispatcher.py:164] Starting module "default" running at: http://localhost:9999
ERROR 2015-02-04 09:56:17,886 wsgi.py:219]
Traceback (most recent call last):
File "/b/build/slave/Linux_Tester/build/google_appengine/google/appengine/runtime/wsgi.py", line 196, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/b/build/slave/Linux_Tester/build/google_appengine/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
handler = import(path[0])
File "/b/build/slave/Linux_Tester/build/src/out/webrtc-samples/samples/web/content/apprtc/apprtc.py", line 26, in
import analytics
File "/b/build/slave/Linux_Tester/build/src/out/webrtc-samples/samples/web/content/apprtc/analytics.py", line 14, in
from oauth2client.client import SignedJwtAssertionCredentials
ImportError: cannot import name SignedJwtAssertionCredentials
INFO 2015-02-04 09:56:17,891 module.py:593] default: "GET /r/some_room?wshpp=localhost:8089&wstls=false&firefox_fake_device=1 HTTP/1.1" 500 -
ERROR 2015-02-04 09:56:17,919 wsgi.py:219]
Traceback (most recent call last):
File "/b/build/slave/Linux_Tester/build/google_appengine/google/appengine/runtime/wsgi.py", line 196, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/b/build/slave/Linux_Tester/build/google_appengine/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
handler = import(path[0])
File "/b/build/slave/Linux_Tester/build/src/out/webrtc-samples/samples/web/content/apprtc/apprtc.py", line 26, in
import analytics
File "/b/build/slave/Linux_Tester/build/src/out/webrtc-samples/samples/web/content/apprtc/analytics.py", line 14, in
from oauth2client.client import SignedJwtAssertionCredentials
ImportError: cannot import name SignedJwtAssertionCredentials
INFO 2015-02-04 09:56:17,923 module.py:593] default: "GET /favicon.ico HTTP/1.1" 500 -
BrowserTestBase signal handler received SIGTERM. Backtrace:
#0 0x000001645df9 base::debug::StackTrace::StackTrace()

Log from http://chromegw.corp.google.com/i/chromium.webrtc/builders/Linux%20Tester/builds/33276/steps/browser_tests/logs/stdio.

@phoglund
Copy link
Contributor Author

phoglund commented Feb 4, 2015

Where are the oauth2client imports supposed to come from? I can't see it being added or depended upon in the analytics CLs. Are they a part of appengine? We need to figure out why the bots fail to import those when they bring up the server with dev_appserver.py.

(Also, next time you do a merge like this, try to get it right in the branch before merging to master, so I don't have to revert 5 commits with fixes piled on top of each other).

@phoglund
Copy link
Contributor Author

phoglund commented Feb 4, 2015

Strangely enough, the test works when I run on my workstation. I tried deleting my google_appengine copy and webrtc-samples; it still succeeds. Now that is weird. My first thought was that this is due to differences against the bot's PYTHONPATH, but it succeeds.

After digging around a bit, I reckon the code is supposed to come from src/out/webrtc-samples/samples/web/content/apprtc/third_party/oauth2client/client.py. Looking at that code:

if HAS_CRYPTO:

PyOpenSSL and PyCrypto are not prerequisites for oauth2client, so if it is

missing then don't create the SignedJwtAssertionCredentials or the

verify_id_token() method.

class SignedJwtAssertionCredentials(AssertionCredentials):

So the problem is that we don't have PyOpenSSL and PyCrypto? It wouldn't surprise me if the bots' system python do not have those things. Donald, what needs to happen to make that work? Can you pull the crypto stuff into third_party as some kind of build step for AppRTC? As a general thing, we can't install stuff into the bots' system python, so the app needs to pull all its dependencies by itself.

@jiayliu
Copy link
Contributor

jiayliu commented Feb 4, 2015

Ported to webrtc/apprtc#21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants