Open
Bug 1387039
Opened 8 years ago
Updated 2 years ago
test installs from pypi.python.org, fails in mdc1
Categories
(Firefox Build System :: General, enhancement)
Firefox Build System
General
Tracking
(Not tracked)
NEW
People
(Reporter: arich, Unassigned)
References
Details
We shouldn't be installing modules directly from github, we should have them as part of our internal pypi mirror or in tooltool, depending. The test machines in mdc1 do not allow external connections to install from github directly.
See: https://tools.taskcluster.net/groups/M6YmCZUETJ2jman6S44TUg/tasks/GSC_kOB-RpePrx_OHtntXg/runs/0/logs/public%2Flogs%2Flog_raw.log
Running setup.py (path:/Users/cltbld/tasks/task_1501761780/build/venv/build/twisted/setup.py) egg_info for package twisted
Downloading/unpacking txws==0.9.1 (from -r /Users/cltbld/tasks/task_1501761780/build/tests/mochitest/websocketprocessbridge/websocketprocessbridge_requirements.txt (line 4))
Comment 1•8 years ago
|
||
05:16:45 ERROR - Traceback (most recent call last):
05:16:45 INFO - File "<string>", line 17, in <module>
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/build/txws/setup.py", line 15, in <module>
05:16:45 INFO - url="http://github.com/MostAwesomeDude/txWS",
05:16:45 INFO - File "/tools/python27/lib/python2.7/distutils/core.py", line 112, in setup
05:16:45 INFO - _setup_distribution = dist = klass(attrs)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 221, in __init__
05:16:45 INFO - self.fetch_build_eggs(attrs.pop('setup_requires'))
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 245, in fetch_build_eggs
05:16:45 INFO - parse_requirements(requires), installer=self.fetch_build_egg
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 576, in resolve
05:16:45 INFO - dist = best[req.key] = env.best_match(req, self, installer)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 821, in best_match
05:16:45 INFO - return self.obtain(req, installer) # try and download/install
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 833, in obtain
05:16:45 INFO - return installer(requirement)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 294, in fetch_build_egg
05:16:45 INFO - return cmd.easy_install(req)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/easy_install.py", line 576, in easy_install
05:16:45 INFO - self.local_index
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/package_index.py", line 491, in fetch_distribution
05:16:45 INFO - self.find_packages(requirement)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/package_index.py", line 325, in find_packages
05:16:45 INFO - self.scan_url(self.index_url + requirement.unsafe_name+'/')
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/package_index.py", line 668, in scan_url
05:16:45 INFO - self.process_url(url, True)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/package_index.py", line 201, in process_url
05:16:45 INFO - f = self.open_url(url, "Download error on %s: %%s -- Some packages may not be found!" % url)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/package_index.py", line 610, in open_url
05:16:45 INFO - return open_with_auth(url)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/package_index.py", line 753, in _socket_timeout
05:16:45 INFO - return func(*args, **kwargs)
05:16:45 INFO - File "/Users/cltbld/tasks/task_1501761780/build/venv/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/package_index.py", line 779, in open_with_auth
05:16:45 INFO - fp = urllib2.urlopen(request)
05:16:45 INFO - File "/tools/python27/lib/python2.7/urllib2.py", line 126, in urlopen
05:16:45 INFO - return _opener.open(url, data, timeout)
05:16:45 INFO - File "/tools/python27/lib/python2.7/urllib2.py", line 400, in open
05:16:45 INFO - response = self._open(req, data)
05:16:45 INFO - File "/tools/python27/lib/python2.7/urllib2.py", line 418, in _open
05:16:45 INFO - '_open', req)
05:16:45 INFO - File "/tools/python27/lib/python2.7/urllib2.py", line 378, in _call_chain
05:16:45 INFO - result = func(*args)
05:16:45 INFO - File "/tools/python27/lib/python2.7/urllib2.py", line 1207, in http_open
05:16:45 INFO - return self.do_open(httplib.HTTPConnection, req)
05:16:45 INFO - File "/tools/python27/lib/python2.7/urllib2.py", line 1180, in do_open
05:16:45 INFO - r = h.getresponse(buffering=True)
05:16:45 INFO - File "/tools/python27/lib/python2.7/httplib.py", line 1030, in getresponse
05:16:45 INFO - response.begin()
05:16:45 INFO - File "/tools/python27/lib/python2.7/httplib.py", line 407, in begin
05:16:45 INFO - version, status, reason = self._read_status()
05:16:45 INFO - File "/tools/python27/lib/python2.7/httplib.py", line 365, in _read_status
05:16:45 INFO - line = self.fp.readline()
05:16:45 INFO - File "/tools/python27/lib/python2.7/socket.py", line 447, in readline
05:16:45 INFO - data = self._sock.recv(self._rbufsize)
05:16:45 INFO - socket.error: [Errno 54] Connection reset by peer
the requirements file lists txWS=0.9.1, which is in the pypi mirror, and is being fetched successfully -- its setup.py is running when the failure occurs. Both of its requirements -- vcversioner and six -- are also in the pypi mirror.
It looks like the problem is that txWS uses setup_requires, and that is parsed internally and fetched by distribute within the invocation of `setup.py egg_info`. Adding some debug prints to distribute and running this manually, I see that the open_with_auth call is trying to open http://pypi.python.org/simple/six/. I think that's because it's using the ancient "easy_install" process for setup_requires, so it doesn't know about the pip command-line arguments.
I can fetch that URL though:
>>> urllib2.urlopen('http://pypi.python.org/simple/six/').read()
'<!DOCTYPE html><html>.....</html>'
Note that http redirects to https.
This is looking more complicated than I thought:
* the requirement itself and its deps are in the pypi mirror, but it's not using them; and
* it's not clear why the HTTP request to pypi.python.org is failing
Comment 2•8 years ago
|
||
Traffic to pypi.python.org during the pip invocation:
09:17:35.381579 IP (tos 0x0, ttl 64, id 45677, offset 0, flags [DF], proto TCP (6), length 64, bad cksum 0 (->8575)!)
t-yosemite-r7-472.test.releng.mdc1.mozilla.com.55641 > 151.101.40.223.http: Flags [S], cksum 0x0308 (incorrect -> 0xfdfe), seq 2828324974, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 684112565 ecr 0,sackOK,eol], length 0
0x0000: b40c 25e0 4010 a860 b624 7eda 0800 4500 ..%.@..`.$~...E.
0x0010: 0040 b26d 4000 4006 0000 0a31 3860 9765 .@.m@.@....18`.e
0x0020: 28df d959 0050 a894 d06e 0000 0000 b002 (..Y.P...n......
0x0030: ffff 0308 0000 0204 05b4 0103 0305 0101 ................
0x0040: 080a 28c6 bab5 0000 0000 0402 0000 ..(...........
09:17:35.382649 IP (tos 0x0, ttl 58, id 0, offset 0, flags [DF], proto TCP (6), length 60)
151.101.40.223.http > t-yosemite-r7-472.test.releng.mdc1.mozilla.com.55641: Flags [S.], cksum 0xeaed (correct), seq 381086945, ack 2828324975, win 28960, options [mss 1460,sackOK,TS val 2145464167 ecr 684112565,nop,wscale 9], length 0
0x0000: a860 b624 7eda b40c 25e0 4010 0800 4500 .`.$~...%.@...E.
0x0010: 003c 0000 4000 3a06 3de7 9765 28df 0a31 .<..@.:.=..e(..1
0x0020: 3860 0050 d959 16b6 ece1 a894 d06f a012 8`.P.Y.......o..
0x0030: 7120 eaed 0000 0204 05b4 0402 080a 7fe1 q...............
0x0040: 2f67 28c6 bab5 0103 0309 /g(.......
09:17:35.382666 IP (tos 0x0, ttl 64, id 18625, offset 0, flags [DF], proto TCP (6), length 52, bad cksum 0 (->ef2d)!)
t-yosemite-r7-472.test.releng.mdc1.mozilla.com.55641 > 151.101.40.223.http: Flags [.], cksum 0x02fc (incorrect -> 0x7ac6), seq 1, ack 1, win 4117, options [nop,nop,TS val 684112566 ecr 2145464167], length 0
0x0000: b40c 25e0 4010 a860 b624 7eda 0800 4500 ..%.@..`.$~...E.
0x0010: 0034 48c1 4000 4006 0000 0a31 3860 9765 .4H.@.@....18`.e
0x0020: 28df d959 0050 a894 d06f 16b6 ece2 8010 (..Y.P...o......
0x0030: 1015 02fc 0000 0101 080a 28c6 bab6 7fe1 ..........(.....
0x0040: 2f67 /g
09:17:35.382707 IP (tos 0x0, ttl 64, id 11166, offset 0, flags [DF], proto TCP (6), length 199, bad cksum 0 (->bbe)!)
t-yosemite-r7-472.test.releng.mdc1.mozilla.com.55641 > 151.101.40.223.http: Flags [P.], cksum 0x038f (incorrect -> 0x015a), seq 1:148, ack 1, win 4117, options [nop,nop,TS val 684112566 ecr 2145464167], length 147
0x0000: b40c 25e0 4010 a860 b624 7eda 0800 4500 ..%.@..`.$~...E.
0x0010: 00c7 2b9e 4000 4006 0000 0a31 3860 9765 ..+.@.@....18`.e
0x0020: 28df d959 0050 a894 d06f 16b6 ece2 8018 (..Y.P...o......
0x0030: 1015 038f 0000 0101 080a 28c6 bab6 7fe1 ..........(.....
0x0040: 2f67 4745 5420 2f73 696d 706c 652f 7369 /gGET./simple/si
0x0050: 782f 2048 5454 502f 312e 310d 0a41 6363 x/.HTTP/1.1..Acc
0x0060: 6570 742d 456e 636f 6469 6e67 3a20 6964 ept-Encoding:.id
0x0070: 656e 7469 7479 0d0a 486f 7374 3a20 7079 entity..Host:.py
0x0080: 7069 2e70 7974 686f 6e2e 6f72 670d 0a43 pi.python.org..C
0x0090: 6f6e 6e65 6374 696f 6e3a 2063 6c6f 7365 onnection:.close
0x00a0: 0d0a 5573 6572 2d41 6765 6e74 3a20 5079 ..User-Agent:.Py
0x00b0: 7468 6f6e 2d75 726c 6c69 622f 322e 3720 thon-urllib/2.7.
0x00c0: 7365 7475 7074 6f6f 6c73 2f30 2e36 6331 setuptools/0.6c1
0x00d0: 310d 0a0d 0a 1....
09:17:35.383509 IP (tos 0x0, ttl 63, id 6834, offset 0, flags [none], proto TCP (6), length 40)
151.101.40.223.http > t-yosemite-r7-472.test.releng.mdc1.mozilla.com.55641: Flags [R.], cksum 0x460c (correct), seq 1, ack 148, win 4117, length 0
0x0000: a860 b624 7eda b40c 25e0 4010 0800 4500 .`.$~...%.@...E.
0x0010: 0028 1ab2 0000 3f06 5e49 9765 28df 0a31 .(....?.^I.e(..1
0x0020: 3860 0050 d959 16b6 ece2 a894 d102 5014 8`.P.Y........P.
0x0030: 1015 460c 0000 0000 db32 9801 ..F......2..
Summary: test tries to install http://github.com/MostAwesomeDude/txWS → test installs from pypi.python.org, fails in mdc1
Comment 3•8 years ago
|
||
Ah, something is filtering on user-agent:
[root@t-yosemite-r7-472.test.releng.mdc1.mozilla.com venv]# curl -v --user-agent 'Python-urllib/2.7 setuptools/0.6c11' http://pypi.python.org/simple/six/
* Trying 151.101.40.223...
* Connected to pypi.python.org (151.101.40.223) port 80 (#0)
> GET /simple/six/ HTTP/1.1
> Host: pypi.python.org
> User-Agent: Python-urllib/2.7 setuptools/0.6c11
> Accept: */*
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
[root@t-yosemite-r7-472.test.releng.mdc1.mozilla.com venv]# curl -v http://pypi.python.org/simple/six/
* Trying 151.101.40.223...
* Connected to pypi.python.org (151.101.40.223) port 80 (#0)
> GET /simple/six/ HTTP/1.1
> Host: pypi.python.org
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: Varnish
< Retry-After: 0
< Location: https://pypi.python.org/simple/six/
< Content-Length: 0
< Accept-Ranges: bytes
< Date: Thu, 03 Aug 2017 16:22:20 GMT
< Via: 1.1 varnish
< Connection: close
< X-Served-By: cache-sjc3628-SJC
< X-Cache: HIT
< X-Cache-Hits: 0
< X-Frame-Options: deny
< X-XSS-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< X-Permitted-Cross-Domain-Policies: none
<
* Closing connection 0
Comment 4•8 years ago
|
||
I can't reproduce this outside of mdc1, not even in scl3.
Amy, is there a hidden proxy in this DC or something that would otherwise be limiting such requests? Alternately, it's possible that pypi has blacklisted some of our IPs or we've gotten tripped up by some DOS protection. Maybe they whitelisted the scl3 NAT IPs and need to do the same for the new mdc1 IPs? Anyway, repro recipe is above, and it looks like netops is hte next step to try to solve this.
Flags: needinfo?(arich)
Reporter | ||
Comment 5•8 years ago
|
||
james, would the mdc1 firewall be blocking these connections? We need to make sure that all 80/443 are allowed (there was a resolved bug for that, but I know that the firewall was looking at things other than port number).
Flags: needinfo?(arich) → needinfo?(jbarnell)
Comment 6•8 years ago
|
||
added python-easy-install, subversion-base, and ftp to the rule set. please test again.
Flags: needinfo?(jbarnell) → needinfo?(arich)
Comment 7•8 years ago
|
||
I don't see a need for subversion or ftp.
If python-easy-install is necessary, then ports 80 and 443 are not really open -- and tests will expect those ports to be completely open. I don't think we can play whack-a-mole with every HTTP user-agent we want to allow outbound access for. Please change the rule to the equivalent of
"if destination not in 01.0.0.0/8 and port == 80 or port == 443: allow"
Reporter | ||
Comment 8•8 years ago
|
||
I concur, we want these to be open based on port not type of traffic. The tests will request a variety of different things that we aren't going to be able to know or anticipate. Please just allow everything outbound on 80 and 443.
Flags: needinfo?(arich) → needinfo?(jbarnell)
Comment 9•8 years ago
|
||
That's not how it works in PAN. Please go ahead and test.
Flags: needinfo?(jbarnell)
Reporter | ||
Comment 10•8 years ago
|
||
Even if it works for one test now, there's no way we can anticipate what tests will be added by developers later. We do not want to falsely break firefox tests because of a filtering rule on the firewall. How can we open this up for all types of traffic on 80 and 443?
Reporter | ||
Updated•8 years ago
|
Flags: needinfo?(jbarnell)
Comment 11•8 years ago
|
||
We should be grabbing Python packages from vendored source or hitting our internal PyPI mirror for all critical automation.
We typically fix issues like this by adding a missing package to our internal PyPI mirror. We don't want our CI hammering PyPI and we don't want to have to close the trees when PyPI isn't available.
I'd prefer we toe the line and keep the firewall closed. Not sure if that is reasonable.
Comment 12•8 years ago
|
||
Yeah, that's why I originally filed the bug here, but in this case the files are already vendored, but easy_install isn't looking for them in the right place. I doubt there's any non-fragile way to convince setup.py's setup_requires to use the URL options given to pip.
In previous seasons of "let's shut off external access from testers", we've uncovered layer upon layer of interesting behavior, not all of it obviously wrong, and much of it difficult to fix or replace. With everything else going on right now, I don't think this is the time to premiere a new season. All of these tasks run fine in scl3, so mdc1 should be configured such that they run fine there, too.
Comment 13•8 years ago
|
||
So setup_requires in txWS's setup.py is triggering a URL search for a package at setup.py time. Fantastic.
I noticed that testing/tools/websocketprocessbridge/websocketprocessbridge_requirements.txt doesn't have an entry for vcversioner. It would be a good practice to add one.
If we move vcversioner and six in testing/tools/websocketprocessbridge/websocketprocessbridge_requirements.txt to before txWS, pip will install those first and *might* avoid a URL search during txWS's setup.py or it may treat it as non-fatal since the package is already installed. But I'm not 100% sure on this because it still appears to do a PyPI lookup:
Collecting vcversioner==2.16.0.0 (from -r testing/tools/websocketprocessbridge/websocketprocessbridge_requirements.txt (line 5))
1 location(s) to search for versions of vcversioner:
* https://pypi.python.org/simple/vcversioner/
Getting page https://pypi.python.org/simple/vcversioner/
Looking up "https://pypi.python.org/simple/vcversioner/" in the cache
No cache entry available
"GET /simple/vcversioner/ HTTP/1.1" 200 965
Updating cache with response from "https://pypi.python.org/simple/vcversioner/"
Caching b/c date exists and max-age > 0
Analyzing links from page https://pypi.python.org/simple/vcversioner/
Found link https://pypi.python.org/packages/19/df/0886516b7fccac96f5e9733cd7a20af6bf10874d698c4953bbe0c20ac677/vcversioner-1.13.0.0.tar.gz#md5=07ad32ac279161b4a036324834096079 (from https://pypi.python.org/simple/vcversioner/), version: 1.13.0.0
Found link https://pypi.python.org/packages/26/8d/cb1bd2f9c4c44ddd5824aa0b536d054e7a8898db44188002a43f375bf3a7/vcversioner-0.13.0.tar.gz#md5=3a3eb170400fc7bc29231ec811a87bda (from https://pypi.python.org/simple/vcversioner/), version: 0.13.0
Found link https://pypi.python.org/packages/51/ab/26ccd65f36cc84835761872f122f40a80b149f872c4d2b83bb1a3aba7756/vcversioner-1.14.0.0.tar.gz#md5=91d20625f9823f6b565b41e77d2de968 (from https://pypi.python.org/simple/vcversioner/), version: 1.14.0.0
Found link https://pypi.python.org/packages/5a/6b/6f5da157648cadbaf83f625c395cd23ff6be3421268b7bf54523b8d9aaab/vcversioner-2.16.0.0-py2-none-any.whl#md5=afbe817dbd60d2f70724ce920e492590 (from https://pypi.python.org/simple/vcversioner/), version: 2.16.0.0
Found link https://pypi.python.org/packages/77/3a/4f93edf09f2cc8925eedfd9ad286b50909cf71f132f56a32e10ece5a283c/vcversioner-0.13.0.2.tar.gz#md5=fedfad15168149a19da6bea9df568fd3 (from https://pypi.python.org/simple/vcversioner/), version: 0.13.0.2
Found link https://pypi.python.org/packages/88/2d/2846726385dacc0b227f8f5521b7dec673977946f0abba0f4474fe095ab2/vcversioner-1.14.1.1.tar.gz#md5=3680f1df3982edebf0e2417439cdacf4 (from https://pypi.python.org/simple/vcversioner/), version: 1.14.1.1
Found link https://pypi.python.org/packages/a6/e4/e1b993b191e3022cd31b81953e86e24673ddf060e4309294c1f991f78530/vcversioner-0.13.1.0.tar.gz#md5=866fa9840a9034d6530c98923d7356d0 (from https://pypi.python.org/simple/vcversioner/), version: 0.13.1.0
Found link https://pypi.python.org/packages/c5/cc/33162c0a7b28a4d8c83da07bc2b12cee58c120b4a9e8bba31c41c8d35a16/vcversioner-2.16.0.0.tar.gz#md5=aab6ef5e0cf8614a1b1140ed5b7f107d (from https://pypi.python.org/simple/vcversioner/), version: 2.16.0.0
Found link https://pypi.python.org/packages/c8/bf/a850e9924d42d52e8677703338c56559da2c54166fa6a813f517a6b80161/vcversioner-2.14.0.0.tar.gz#md5=7848a365ced9941053bc25d9a9f8f4b4 (from https://pypi.python.org/simple/vcversioner/), version: 2.14.0.0
Found link https://pypi.python.org/packages/d5/68/c8b167951ffd6665e8bf7bb3d6b690b3b802bb1dce3dc361e6c118f2e283/vcversioner-0.13.0.1.tar.gz#md5=9007e3a05fe02916fb5e6500f56706f7 (from https://pypi.python.org/simple/vcversioner/), version: 0.13.0.1
Found link https://pypi.python.org/packages/f9/6a/76da913e539de4e7adbf57cde814dc2e749244000f250ea151274bd6fdb5/vcversioner-1.14.1.0.tar.gz#md5=d229c0f4d0e61bdd10cca868b9649f97 (from https://pypi.python.org/simple/vcversioner/), version: 1.14.1.0
Using version 2.16.0.0 (newest of versions: 2.16.0.0)
Looking up "https://pypi.python.org/packages/5a/6b/6f5da157648cadbaf83f625c395cd23ff6be3421268b7bf54523b8d9aaab/vcversioner-2.16.0.0-py2-none-any.whl" in the cache
No cache entry available
"GET /packages/5a/6b/6f5da157648cadbaf83f625c395cd23ff6be3421268b7bf54523b8d9aaab/vcversioner-2.16.0.0-py2-none-any.whl HTTP/1.1" 200 13934
Downloading vcversioner-2.16.0.0-py2-none-any.whl
Downloading from URL https://pypi.python.org/packages/5a/6b/6f5da157648cadbaf83f625c395cd23ff6be3421268b7bf54523b8d9aaab/vcversioner-2.16.0.0-py2-none-any.whl#md5=afbe817dbd60d2f70724ce920e492590 (from https://pypi.python.org/simple/vcversioner/)
Updating cache with response from "https://pypi.python.org/packages/5a/6b/6f5da157648cadbaf83f625c395cd23ff6be3421268b7bf54523b8d9aaab/vcversioner-2.16.0.0-py2-none-any.whl"
Caching due to etag
Collecting txws==0.9.1 (from -r testing/tools/websocketprocessbridge/websocketprocessbridge_requirements.txt (line 8))
1 location(s) to search for versions of txws:
* https://pypi.python.org/simple/txws/
Getting page https://pypi.python.org/simple/txws/
Looking up "https://pypi.python.org/simple/txws/" in the cache
No cache entry available
"GET /simple/txws/ HTTP/1.1" 200 850
Updating cache with response from "https://pypi.python.org/simple/txws/"
Caching b/c date exists and max-age > 0
Analyzing links from page https://pypi.python.org/simple/txws/
Found link https://pypi.python.org/packages/40/d1/6b73300f089da0555c73dfceed06b601aa9d5a88c6222bacc68c40ccbba8/txWS-0.9.tar.gz#md5=b2c023774e89ed758225e2959e2ffa23 (from https://pypi.python.org/simple/txws/), version: 0.9
Found link https://pypi.python.org/packages/4f/ee/72101b853a7dc16e5bc8b784e253cdd016ba00ab9df31a4a1dec44cd0e1c/txWS-0.9.1.tar.gz#md5=d113910af0521ea62db8a0f3d7c63abb (from https://pypi.python.org/simple/txws/), version: 0.9.1
Found link https://pypi.python.org/packages/57/24/997db7ce7388f58fd4d2fa3c75f6382921c1c174eb2f7caeea5289dd0e6f/txWS-0.6.1.tar.gz#md5=ec0635ead35323a58d2a17154b4c86a4 (from https://pypi.python.org/simple/txws/), version: 0.6.1
Found link https://pypi.python.org/packages/58/f6/d4a5ca71b8394317677fde2e85ece3a73113bb61a9b74e02a94b45cdce67/txWS-0.7.tar.gz#md5=e8f5fb03c189d83b47b21176c7574126 (from https://pypi.python.org/simple/txws/), version: 0.7
Found link https://pypi.python.org/packages/70/d6/004a201735e21e5cd8331e4bba57e83274decf0f3c738a4bb58640542207/txWS-0.8.tar.gz#md5=c5584da7c653a74f442c1b1e8bc636d9 (from https://pypi.python.org/simple/txws/), version: 0.8
Found link https://pypi.python.org/packages/71/89/9a058a193558fdce92917f5f1c3e813733df560c7a62664cba7598bf3daa/txWS-0.7.1.1.tar.gz#md5=f88b215c569d98d3666bbfcc306c4171 (from https://pypi.python.org/simple/txws/), version: 0.7.1.1
Found link https://pypi.python.org/packages/9b/b2/e48413260f7c9f2d750b7edae636bed429527d2bb7e494f6ac80d8a44706/txWS-0.5.tar.gz#md5=7b6f7a595a2af30463801f9a82a0c722 (from https://pypi.python.org/simple/txws/), version: 0.5
Found link https://pypi.python.org/packages/a4/e5/6645105dc57b7146b4be6d62c2a7ec7b10228842d4bf98e17f830d3256db/txWS-0.6.2.tar.gz#md5=a653b00eb1cdaca0fb3209dae31e966d (from https://pypi.python.org/simple/txws/), version: 0.6.2
Found link https://pypi.python.org/packages/c6/1c/9cbada53da231f2355e0ce3a47cb2945fc8141a291f94c3504d6e295cbfe/txWS-0.6.tar.gz#md5=b8d48035cef6d48d16eaa4d7a90e2d8c (from https://pypi.python.org/simple/txws/), version: 0.6
Found link https://pypi.python.org/packages/d2/cf/33c703663e65eee7dbfd8724c1a34ae4692511767670876e73eda6519689/txWS-0.7.1.tar.gz#md5=0663015b62528a94107b9b434755f887 (from https://pypi.python.org/simple/txws/), version: 0.7.1
Using version 0.9.1 (newest of versions: 0.9.1)
Looking up "https://pypi.python.org/packages/4f/ee/72101b853a7dc16e5bc8b784e253cdd016ba00ab9df31a4a1dec44cd0e1c/txWS-0.9.1.tar.gz" in the cache
No cache entry available
"GET /packages/4f/ee/72101b853a7dc16e5bc8b784e253cdd016ba00ab9df31a4a1dec44cd0e1c/txWS-0.9.1.tar.gz HTTP/1.1" 200 9899
Downloading txWS-0.9.1.tar.gz
Downloading from URL https://pypi.python.org/packages/4f/ee/72101b853a7dc16e5bc8b784e253cdd016ba00ab9df31a4a1dec44cd0e1c/txWS-0.9.1.tar.gz#md5=d113910af0521ea62db8a0f3d7c63abb (from https://pypi.python.org/simple/txws/)
Updating cache with response from "https://pypi.python.org/packages/4f/ee/72101b853a7dc16e5bc8b784e253cdd016ba00ab9df31a4a1dec44cd0e1c/txWS-0.9.1.tar.gz"
Caching due to etag
Running setup.py (path:/tmp/pip-build-BHDfuN/txws/setup.py) egg_info for package txws
Running command python setup.py egg_info
no previously-included directories found matching 'documentation/_build'
zip_safe flag not set; analyzing archive contents...
six: module references __path__
Installed /tmp/pip-build-BHDfuN/txws/.eggs/six-1.10.0-py2.7.egg
Searching for vcversioner
Reading https://pypi.python.org/simple/vcversioner/
Downloading https://pypi.python.org/packages/c5/cc/33162c0a7b28a4d8c83da07bc2b12cee58c120b4a9e8bba31c41c8d35a16/vcversioner-2.16.0.0.tar.gz#md5=aab6ef5e0cf8614a1b1140ed5b7f107d
Best match: vcversioner 2.16.0.0
Processing vcversioner-2.16.0.0.tar.gz
Writing /tmp/easy_install-dpFcdV/vcversioner-2.16.0.0/setup.cfg
Running vcversioner-2.16.0.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dpFcdV/vcversioner-2.16.0.0/egg-dist-tmp-oxzAXz
zip_safe flag not set; analyzing archive contents...
Moving vcversioner-2.16.0.0-py2.7.egg to /tmp/pip-build-BHDfuN/txws/.eggs
Installed /tmp/pip-build-BHDfuN/txws/.eggs/vcversioner-2.16.0.0-py2.7.egg
running egg_info
creating pip-egg-info/txWS.egg-info
writing pip-egg-info/txWS.egg-info/PKG-INFO
writing top-level names to pip-egg-info/txWS.egg-info/top_level.txt
writing dependency_links to pip-egg-info/txWS.egg-info/dependency_links.txt
writing manifest file 'pip-egg-info/txWS.egg-info/SOURCES.txt'
reading manifest file 'pip-egg-info/txWS.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pip-egg-info/txWS.egg-info/SOURCES.txt'
Source in /tmp/pip-build-BHDfuN/txws has version 0.9.1, which satisfies requirement txws==0.9.1 from https://pypi.python.org/packages/4f/ee/72101b853a7dc16e5bc8b784e253cdd016ba00ab9df31a4a1dec44cd0e1c/txWS-0.9.1.tar.gz#md5=d113910af0521ea62db8a0f3d7c63abb (from -r testing/tools/websocketprocessbridge/websocketprocessbridge_requirements.txt (line 8))
Building wheels for collected packages: txws
I dunno.
tarek: can you recommend a way to stop this URL lookup during setup_requires?
Flags: needinfo?(tarek)
Comment 14•7 years ago
|
||
James, we're still looking for an answer about allowing all HTTP/HTTPS traffic out of this network -- the subsequent discussion of pip and easy_install does not remove that requirement.
Comment 15•7 years ago
|
||
that's already in place as discussed on Friday. If something is broken its not the policy.
Flags: needinfo?(jbarnell) → needinfo?(dustin)
Comment 16•7 years ago
|
||
OK, I wasn't part of that conversation. Thanks!
Comment 17•7 years ago
|
||
not sure why I was needinfoed -- if there's info needed from me somewhere here, please ask again.
Flags: needinfo?(dustin)
Comment 18•7 years ago
|
||
It's a hack I have not tried but you can block any call to PyPI made by easy_install (which do those calls) during the installation of the package by routing easy_install index to a local dir
https://pip.pypa.io/en/latest/reference/pip_install/#controlling-setup-requires
If that does not work we can do something at the pip level to block this behavior (and ask pypa to add it as a new option, I don't see that)
email me or ping me on irc if you need more help on that
Flags: needinfo?(tarek)
Updated•7 years ago
|
Product: Core → Firefox Build System
Comment 19•7 years ago
|
||
I'm the project manager for Warehouse https://github.com/pypa/warehouse/ (serving pypi.org, the new PyPI https://pyfound.blogspot.com/2018/03/warehouse-all-new-pypi-is-now-in-beta.html that's replacing pypi.python.org on Monday April 16th).
Your CI running a lot of "pip install" commands is, I presume, mostly hitting our CDN (Fastly) so that's not too bad on our side.
What code is your internal PyPI mirror running? Bandersnatch or something else?
Comment 20•7 years ago
|
||
The internal mirror is just an Apache directory listing. That has the advantage of being simple and thus not failure-prone. It works well enough, even if it is a bit annoying to have to scp packages there to add them. We do want the control of only allowing a select few people to put packages on the mirror. So it's not really a mirror :)
I think the concern here is what Tarek is referring to - ensuring that installs do not ever talk to pypi.python.org. Not because of a concern with load on that site, but because it might have packages on it that we do not want to install (e.g., a newer version of some library).
Maybe there's something we can discuss here, though? I'm probably not the right person to be involved, at least alone..
Comment 21•7 years ago
|
||
We should be using hash pinning in pip requirements files for all index installs. Full stop. It's a security vulnerability and non-determinism issue if we don't.
In addition to that, CI should be using a Mozilla-hosted index so we don't have a dependency on 3rd party services. That's a CI platform reliability issue.
These are the ideals, not what we're currently practicing universally.
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•