[Distutils] Buildout can't talk to PyPI any more?

Donald Stufft donald at stufft.io
Wed May 29 11:43:31 CEST 2013


On May 29, 2013, at 5:39 AM, Donald Stufft <donald at stufft.io> wrote:

> 
> On May 29, 2013, at 5:18 AM, Marius Gedminas <marius at pov.lt> wrote:
> 
>> On Wed, May 29, 2013 at 11:03:39AM +0200, Lennart Regebro wrote:
>>> On Wed, May 29, 2013 at 10:19 AM, Marius Gedminas <marius at pov.lt> wrote:
>>>> Could it be that recent PyPI CDN changes broke zc.buildout somehow?
>>>> Witness this:
>>>> 
>>>>  $ wget http://downloads.buildout.org/2/bootstrap.py
>>>> 
>>>>  $ cat buildout.cfg
>>>>  [buildout]
>>>>  parts = zodbbrowser
>>>>  [zodbbrowser]
>>>>  recipe = zc.recipe.egg
>>>> 
>>>>  $ python bootstrap.py
>>>> 
>>>>  $ bin/buildout
>>>>  Error: Couldn't find a distribution for 'zodbbrowser'.
>>> 
>>> Works for me.
>> 
>> Works for me too, now.
>> 
>> 
>> Interesting detail: when buildout was failing, and I tried
>> 
>>  curl http://pypi.python.org/simple/zodbbrowser/
>> 
>> all I got was a bunch of binary garbage.  To be fair, curl -I showed
>> Content-encoding: gzip, and piping curl to zcat showed the HTML just
>> fine.  But the interesting thing is that when I try this now, I get raw
>> HTML.
>> 
>> Can it be that buildout doesn't handle Content-Encoding: gzip?
>> 
>> I was also looking at raw HTTP requests with ngrep, and saw that
>> buildout issued something like
>> 
>>  GET /simple/zodbbrowser HTTP/forgotwhichversionsadly
>>  Host: ...
>>  Accept-Encoding: identity
>>  User-Agent: blah blah distribute 0.6.44 blah blah Python/urllib
>> 
>> That "Accept-Encoding" header kind of hints that distribute can't handle
>> gzipped index pages.  So maybe Varnish or nginx or something on the CDN
>> side was misconfigured and ignored the Accept-Encoding?  But why would
>> pip/easy_install work then -- they use distribute too!?  (Or was I
>> accidentally using a virtualenv that had setuptools instead of
>> distribute?  Python packaging aargh.)
>> 
>> 
>> Another possibly interesting detail: I made a release of zodbbrowser
>> 0.11.0 this morning.  Buildout was unable to get it right after that,
>> and this condition lasted for several hours (from 07:40 UTC until some
>> point between 08:20 and 09:00 UTC).
>> 
>> The Zope Windows buildbot had a couple of similar intermittent errors
>> (buildout was unable to find a distribution of some package) that went
>> away when the build job was retried after 24 hours.  Could it be that
>> something about the PyPI CDN causes new package releases to be gzipped
>> for an hour or so, and then revert to plain HTML?
>> 
>> I'm tempted to do a test, something like
>> 
>>  curl -I http://pypi.python.org/simple/somepackage/
>>  cd ~/src/somepackage && fullrelease # zest.releaser FTW
>>  curl -I http://pypi.python.org/simple/somepackage/
>> 
>> if I can find some package ready for a new release.
>> 
>> Marius Gedminas
>> -- 
>> We'll show a small example here with one user calling another. (Under
>> international treaties describing technical papers these users must be called
>> "Alice" and "Bob".)
>>        -- Anthony Baxter
>> _______________________________________________
>> Distutils-SIG maillist  -  Distutils-SIG at python.org
>> http://mail.python.org/mailman/listinfo/distutils-sig
> 
> The cache timeout is an hour unless modifications are made to the package which triggers a cache invalidation.
> 
> I bet there is a missing Vary for the encoding. I'll check and get back to you.
> 
> -----------------
> Donald Stufft
> PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
> 
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> http://mail.python.org/mailman/listinfo/distutils-sig


There was indeed no Vary headers, I've turned them on and purged the cache. Please let me know if this behavior doesn't go away.

-----------------
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130529/77b73cf9/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130529/77b73cf9/attachment.pgp>


More information about the Distutils-SIG mailing list