Closed Bug 1268032 Opened 7 years ago Closed 7 years ago

bug 1231981 broke mochitests on my Windows machine - ImportError: No module named zope.interface

Categories

(Core :: WebRTC: Networking, defect, P1)

defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox49 --- affected

People

(Reporter: Gijs, Assigned: bwc)

References

Details

Attachments

(1 obsolete file)

I have no idea what this is, saw no relevant m.d.platform or fx-dev posts, and see no useful information in the bug that added this. But my tests don't need this "websocketprocessbridge", and nor do any other tests I routinely run, so it is a mystery to me why all this machinery is running and/or breaking my ability to run tests.

Gijs@hermes /e/dev/fx-team
$ ./mach build faster && ./mach mochitest browser/base/content/test/urlbar/browser_urlbarPrivateBrowsingWindowChange.js
 0:00.91 e:\mozilla-build\mozmake\mozmake.EXE -C e:/dev/builds/opt-i686-pc-mingw32 -j8 -s backend
 0:01.06 Build configuration changed. Regenerating backend.
 0:20.53 Reticulating splines...
 0:20.53 Finished reading 3002 moz.build files in 6.41s
 0:20.53 Processed into 9723 build config descriptors in 4.72s
 0:20.53 RecursiveMake backend executed in 6.75s
 0:20.53   2754 total backend files; 0 created; 0 updated; 2754 unchanged; 0 deleted; 62 -> 1031 Makefile
 0:20.53 FasterMake backend executed in 0.44s
 0:20.53   10 total backend files; 0 created; 0 updated; 10 unchanged; 0 deleted
 0:20.53 Total wall time: 19.05s; CPU time: 19.05s; Efficiency: 100%; Untracked: 0.73s
 0:20.74 e:\mozilla-build\mozmake\mozmake.EXE -C faster -j8 -s
 0:20.89 source-repo.h
 0:20.89 buildid.h
 0:21.28 Elapsed: 0.22s; From dist/idl: Kept 0 existing; Added/updated 1151; Removed 0 files and 0 directories.
 0:21.96 Elapsed: 0.02s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin/gmp-clearkey/0.1: Kept 0 existing; Added/updated 1; Removed 0 files and 0 directories.
 0:21.96 Elapsed: 0.02s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin/gmp-fake/1.0: Kept 2 existing; Added/updated 0; Removed 0 files and 0 directories.
 0:21.96 Elapsed: 0.00s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin/gmp-fakeopenh264/1.0: Kept 2 existing; Added/updated 0; Removed 0 files and 0 directories.
 0:21.99 Elapsed: 0.02s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin/browser/features/firefox@getpocket.com: Kept 81 existing; Added/updated 2; Removed 0 files and 0 directories.
 0:22.03 Elapsed: 0.06s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin/browser/features/loop@mozilla.org: Kept 0 existing; Added/updated 201; Removed 0 files and 0 directories.
 0:22.08 Elapsed: 0.02s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}: Kept 0 existing; Added/updated 2; Removed 0 files and 0 directories.
 0:23.38 Elapsed: 1.44s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin: Kept 0 existing; Added/updated 1810; Removed 0 files and 0 directories.
 0:23.41 Elapsed: 1.44s; From e:/dev/builds/opt-i686-pc-mingw32/dist/bin/browser: Kept 0 existing; Added/updated 2388; Removed 0 files and 0 directories.
 0:23.82 Your build was successful!
To view resource usage of the build, run |mach resource-usage|.
Collecting twisted==10.2.0 (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 1))
  Downloading Twisted-10.2.0.tar.bz2 (2.7MB)
    100% |################################| 2.7MB 407kB/s
Collecting txws==0.9.1 (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 4))
  Downloading txWS-0.9.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): psutil==3.1.1 in .\python\psutil (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 6))
Collecting six==1.10.0 (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 9))
  Downloading six-1.10.0-py2.py3-none-any.whl
Collecting ipaddr==2.1.11 (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 12))
  Downloading ipaddr-2.1.11.tar.gz
Collecting passlib==1.6.5 (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 13))
  Downloading passlib-1.6.5-py2.py3-none-any.whl (317kB)
    100% |################################| 327kB 1.6MB/s
Collecting zope.interface (from twisted==10.2.0->-r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 1))
  Downloading zope.interface-4.1.3.tar.gz (141kB)
    100% |################################| 143kB 1.6MB/s
Requirement already satisfied (use --upgrade to upgrade): setuptools in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from zope.interface->twisted==10.2.0->-r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 1))
Building wheels for collected packages: twisted, txws, ipaddr, zope.interface
  Running setup.py bdist_wheel for twisted ... done
  Stored in directory: C:\Users\Gijs\AppData\Local\pip\Cache\wheels\c7\0b\61\7b676ec24a43d2be66dc8c496e69bc397cec4ffd2a04f4db14
  Running setup.py bdist_wheel for txws ... done
  Stored in directory: C:\Users\Gijs\AppData\Local\pip\Cache\wheels\3e\f0\8e\54b46228ee00eb22c140cde8193204ec8a8e43dabf5bd75f7c
  Running setup.py bdist_wheel for ipaddr ... done
  Stored in directory: C:\Users\Gijs\AppData\Local\pip\Cache\wheels\58\de\20\928e64e591abff7374a8e77e19a765b1572c25d9102c42f8b2
  Running setup.py bdist_wheel for zope.interface ... done
  Stored in directory: C:\Users\Gijs\AppData\Local\pip\Cache\wheels\52\04\ad\12c971c57ca6ee5e6d77019c7a1b93105b1460d8c2db6e4ef1
Successfully built twisted txws ipaddr zope.interface
Installing collected packages: zope.interface, twisted, txws, six, ipaddr, passlib
Successfully installed ipaddr-2.1.11 passlib-1.6.5 six-1.10.0 twisted-10.2.0 txws-0.9.1 zope.interface-4.1.3

######
### Now running mochitest-browser.
######

Checking for orphan ssltunnel processes...
Checking for orphan xpcshell processes...
SUITE-START | Running 1 tests
dir: browser/base/content/test/urlbar
mozprofile.addons WARNING | Could not install e:\dev\builds\opt-i686-pc-mingw32\_tests\testing\mochitest\extensions\mozscreenshots: [Errno 2] No such file or directory: 'e:\\dev\\builds\\opt-i686-pc-mingw32\\_tests\\testing\\mochitest\\extensions\\mozscreenshots\\install.rdf'
e:\dev\builds\opt-i686-pc-mingw32\dist\bin\pk12util.exe: PKCS12 IMPORT SUCCESSFUL
MochitestServer : launching [u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin\\xpcshell.exe', '-g', u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin', '-v', '170', '-f', u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin\\components\\httpd.js', '-e', "const _PROFILE_PATH = 'c:\\\\users\\\\gijs\\\\appdata\\\\local\\\\temp\\\\tmpo6om08.mozrunner'; const _SERVER_PORT = '8888'; const _SERVER_ADDR = '127.0.0.1'; const _TEST_PREFIX = undefined; const _DISPLAY_RESULTS = false;", '-f', 'e:\\dev\\builds\\opt-i686-pc-mingw32\\_tests\\testing\\mochitest\\server.js']
runtests.py | Server pid: 6832
runtests.py | Websocket server pid: 2272
runtests.py | websocket/process bridge pid: 6216
Traceback (most recent call last):
  File "websocketprocessbridge\websocketprocessbridge.py", line 6, in <module>
    from twisted.internet import protocol, reactor
  File "e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\Lib\site-packages\twisted\internet\protocol.py", line 15, in <module>
    from zope.interface import implements
ImportError: No module named zope.interface




after which it just sits there and I have to manually kill python, xpcshell and all the other gunk it leaves around. Re-running this provides no improvement:

Requirement already satisfied (use --upgrade to upgrade): twisted==10.2.0 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): txws==0.9.1 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 4))
Requirement already satisfied (use --upgrade to upgrade): psutil==3.1.1 in .\python\psutil (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 6))
Requirement already satisfied (use --upgrade to upgrade): six==1.10.0 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 9))
Requirement already satisfied (use --upgrade to upgrade): ipaddr==2.1.11 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 12))
Requirement already satisfied (use --upgrade to upgrade): passlib==1.6.5 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 13))
Requirement already satisfied (use --upgrade to upgrade): zope.interface in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from twisted==10.2.0->-r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): setuptools in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from zope.interface->twisted==10.2.0->-r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 1))

######
### Now running mochitest-browser.
######

Checking for orphan ssltunnel processes...
Checking for orphan xpcshell processes...
SUITE-START | Running 1 tests
dir: browser/base/content/test/urlbar
mozprofile.addons WARNING | Could not install e:\dev\builds\opt-i686-pc-mingw32\_tests\testing\mochitest\extensions\mozscreenshots: [Errno 2] No such file or directory: 'e:\\dev\\builds\\opt-i686-pc-mingw32\\_tests\\testing\\mochitest\\extensions\\mozscreenshots\\install.rdf'
e:\dev\builds\opt-i686-pc-mingw32\dist\bin\pk12util.exe: PKCS12 IMPORT SUCCESSFUL
MochitestServer : launching [u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin\\xpcshell.exe', '-g', u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin', '-v', '170', '-f', u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin\\components\\httpd.js', '-e', "const _PROFILE_PATH = 'c:\\\\users\\\\gijs\\\\appdata\\\\local\\\\temp\\\\tmp8hbi1g.mozrunner'; const _SERVER_PORT = '8888'; const _SERVER_ADDR = '127.0.0.1'; const _TEST_PREFIX = undefined; const _DISPLAY_RESULTS = false;", '-f', 'e:\\dev\\builds\\opt-i686-pc-mingw32\\_tests\\testing\\mochitest\\server.js']
runtests.py | Server pid: 996
runtests.py | Websocket server pid: 636
runtests.py | websocket/process bridge pid: 3820
Traceback (most recent call last):
  File "websocketprocessbridge\websocketprocessbridge.py", line 6, in <module>
    from twisted.internet import protocol, reactor
  File "e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\Lib\site-packages\twisted\internet\protocol.py", line 15, in <module>
    from zope.interface import implements
ImportError: No module named zope.interface


Byron, how do I fix this and/or can we back this out?
Flags: needinfo?(docfaraday)
I made this a very high P1 since it's blocking development for another developer.

Gijs -- Sorry that this impacted you.  Our intent was to limit the impact to just WebRTC tests (which have needed better TURN server testing in Automation for quite a while).  We'll work to get this fixed for you ASAP.
Assignee: nobody → docfaraday
Rank: 5
Priority: -- → P1
Looking into this now.
Flags: needinfo?(docfaraday)
This is broken for me on Mac too.  Trying to run "mach mochitest dom/jsurl" gives exactly the errors Gijs is running into.

Also, are these bits also from this checkin:

  Downloading Twisted-10.2.0.tar.bz2 (2.7MB)
...
  Downloading zope.interface-4.1.3.tar.gz (141kB)

and what happens when running mochitests offline?
As another piece of evidence, I get a similar traceback (on mac):

Traceback (most recent call last):
  File "websocketprocessbridge/websocketprocessbridge.py", line 6, in <module>
    from twisted.internet import protocol, reactor
  File "/Users/kumar/src/fx-team/objdir-frontend/_virtualenv/lib/python2.7/site-packages/twisted/internet/protocol.py", line 15, in <module>
    from zope.interface import implements
ImportError: No module named zope.interface

but when I run this on the command line (outside of mach), I do not get an import error:

/Users/kumar/src/fx-team/objdir-frontend/_virtualenv/bin/python -c "from twisted.internet import protocol, reactor"

...which makes no sense.
How does this patch work for you?
Flags: needinfo?(gijskruitbosch+bugs)
(In reply to Byron Campen [:bwc] (PTO Apr 15) from comment #6)
> How does this patch work for you?

This does not seem to fix the issue for me:

Requirement already satisfied (use --upgrade to upgrade): twisted==10.2.0 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 1))
Collecting zope.interface==4.0.2 (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 4))
  Downloading zope.interface-4.0.2.tar.gz (139kB)
    100% |################################| 143kB 1.7MB/s
Requirement already satisfied (use --upgrade to upgrade): txws==0.9.1 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): psutil==3.1.1 in .\python\psutil (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 9))
Requirement already satisfied (use --upgrade to upgrade): six==1.10.0 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 12))
Requirement already satisfied (use --upgrade to upgrade): ipaddr==2.1.11 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 15))
Requirement already satisfied (use --upgrade to upgrade): passlib==1.6.5 in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from -r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 16))
Requirement already satisfied (use --upgrade to upgrade): setuptools in e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\lib\site-packages (from zope.interface==4.0.2->-r e:/dev/builds/opt-i686-pc-mingw32\_tests\testing\mochitest\websocketprocessbridge\websocketprocessbridge_requirements.txt (line 4))
Building wheels for collected packages: zope.interface
  Running setup.py bdist_wheel for zope.interface ... done
  Stored in directory: C:\Users\Gijs\AppData\Local\pip\Cache\wheels\10\7d\bf\1083943ac50dc73bdb06d571f73f2d81b2c263a3b9325aa265
Successfully built zope.interface
Installing collected packages: zope.interface
  Found existing installation: zope.interface 4.1.3
    Uninstalling zope.interface-4.1.3:
      Successfully uninstalled zope.interface-4.1.3
Successfully installed zope.interface-4.0.2

######
### Now running mochitest-browser.
######

Checking for orphan ssltunnel processes...
Checking for orphan xpcshell processes...
SUITE-START | Running 1 tests
dir: browser/base/content/test/urlbar
mozprofile.addons WARNING | Could not install e:\dev\builds\opt-i686-pc-mingw32\_tests\testing\mochitest\extensions\mozscreenshots: [Errno 2] No such file or directory: 'e:\\dev\\builds\\opt-i686-pc-mingw32\\_tests\\testing\\mochitest\\extensions\\mozscreenshots\\install.rdf'
e:\dev\builds\opt-i686-pc-mingw32\dist\bin\pk12util.exe: PKCS12 IMPORT SUCCESSFUL
MochitestServer : launching [u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin\\xpcshell.exe', '-g', u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin', '-v', '170', '-f', u'e:\\dev\\builds\\opt-i686-pc-mingw32\\dist\\bin\\components\\httpd.js', '-e', "const _PROFILE_PATH = 'c:\\\\users\\\\gijs\\\\appdata\\\\local\\\\temp\\\\tmpjwwd6i.mozrunner'; const _SERVER_PORT = '8888'; const _SERVER_ADDR = '127.0.0.1'; const _TEST_PREFIX = undefined; const _DISPLAY_RESULTS = false;", '-f', 'e:\\dev\\builds\\opt-i686-pc-mingw32\\_tests\\testing\\mochitest\\server.js']
runtests.py | Server pid: 6372
runtests.py | Websocket server pid: 5696
runtests.py | websocket/process bridge pid: 2792
Traceback (most recent call last):
  File "websocketprocessbridge\websocketprocessbridge.py", line 6, in <module>
    from twisted.internet import protocol, reactor
  File "e:\dev\builds\opt-i686-pc-mingw32\_virtualenv\Lib\site-packages\twisted\internet\protocol.py", line 15, in <module>
    from zope.interface import implements
ImportError: No module named zope.interface
Flags: needinfo?(gijskruitbosch+bugs)
As near as I can tell, zope.interface requires extra stuff in the PYTHONPATH that isn't being set up by pip. Some claim that using easy_install instead works, but we cannot do that in CI I think. We probably need to back out while I figure out what horrible thing I need to do to make this work...
Attachment #8746049 - Attachment is obsolete: true
Attachment #8746049 - Flags: review?(gps)
importing zope.interface relies on zope.interface-4.1.3-py2.7-nspkg.pth which sets the python path. pth files are only parsed in site.py (which is ignored in some cases) https://docs.python.org/2/library/site.html
Is this working alright for you after the re-landing?
Flags: needinfo?(gijskruitbosch+bugs)
(In reply to Byron Campen [:bwc] (PTO Apr 15) from comment #10)
> Is this working alright for you after the re-landing?

I no longer see breakage when not running media tests, yes. I haven't tried running the media tests... should I?
Flags: needinfo?(gijskruitbosch+bugs) → needinfo?(docfaraday)
You can if you like, some of them will fail if you don't have the necessary python packages installed, which is the intent.
Flags: needinfo?(docfaraday)
(In reply to Byron Campen [:bwc] (PTO Jun 6-10) from comment #12)
> You can if you like, some of them will fail if you don't have the necessary
> python packages installed, which is the intent.

OK, then let's resolve WFM. Thanks!
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.