Subject: | CPAN misinterprets 404 as status 407 |
When CPAN tries to fetch a module using LWP and if it is
fetching through a proxy, a 404 from the proxy confuses
LWP into thinking the proxy isn't working -- when the
proxy really can't find the listed URL.
I've seen this before in other cases, but due to a recent
upgrading from cyg32->cyg64, my cpan-config file had some
bogus values -- which made this error easier to reproduce).
The output generated when it couldn't find things was:
law.Bliss> cpan
cpan[1]> look Test::Reporter::Transport::Metabase
CPAN::SQLite not installed, trying to work without
CPAN: Storable loaded ok (v2.27)
Reading '/var/cache/CPAN/Metadata'
Database was generated on Sun, 12 Jan 2014 12:41:02 GMT
Reading '/Share/CPAN/sources/authors/01mailrc.txt.gz'
CPAN: Compress::Zlib loaded ok (v2.033)
............................................................................DONE
CPAN: LWP::UserAgent loaded ok (v6.05)
Fetching with LWP:
http://mirrors.kernel.org/CPAN http://www.perl.com/CPAN/modules/02packages.details.txt.gz
LWP failed with code[404] message[Not Found]
Proxy authentication needed!
(Note: to permanently configure username and password run
o conf proxy_user your_username
o conf proxy_pass your_password
)
Username:
CPAN: Term::ReadKey loaded ok (v2.30)
Password:
(To reproduce, a bogus value in "urllist" like:
'urllist' => [q[http://mirrors.kernel.org/CPAN http://www.perl.com/CPAN/],q[http://www.perl.com/CPAN/]],
can be used...)
CPAN shouldn't equate '404' not found, with '407' (proxy_auth_required).
(side note -- not the point of this bug, but would have circumvented
it: CPAN might recognize that the URL addr is suspect (raw space in URL
is unlikely in a standard URL as well as unlikely in a CPAN mirror addr)).
In any event, unless it gets back a '407', it likely shouldn't be
asking for a User/PW, but just go on to next mirror or next method of
fetching...(which for a missing module, may work, but for a bogusly
formatted urllist, likely won't). Have seen this recently on linux
where I had uploaded to cpan, a new version of a module -- but
it hadn't been mirrored on mirrors yet -- that "not found" 404 gave
the same symptoms of asking for username/pw, but hitting return
to get past that, it was fetchable from cpan.org...
-----
This bug was originally filed against the core version of CPAN -- but I was told it that the newer works was done in the distribution and that I should file it here.
"perlbug" thought it belonged in the perl-core DB, as it accepted the bug as being in a core library, so there seems to be some confusion about where a bug report should go.
The other bug # is #121023. Please let me know where it should be filed or if it should be in both, as it is a problem in both?
Thanks.