PPM failing to install packages

Posted by blackdog on 2014-11-30 12:05
Forums: PPM | OS: Windows 8

I have been using ActiveState Perl successfully for many years. I have just upgraded to ActivePerl 5.20.1 for Windows 64-bit x64 (was using 5.16 before). My Perl programs that require no extra packages are still working fine, but now PPM is having problems installing packages, with some packages not found ("Error 404"). And strangely the problem is inconsistent. I tried repeatedly to install the DateTime package. Each time I try, it stops on not finding one or other of the 7 required packages for DateTime. For instance, in these two successive attempts, one the first time it could not find the DateTime package itself, but on the second attempt it found that one, but then could not find another package it needed: Params-Validate. On other attempts, this too succeeds and other packages such as List-AllUtils, or DateTime (again) is not found. Below is the contents of the PPM Status Window on first two attempts. I might add that my Internet connection is just fine, I am encountering no other problems. And I did a simple clean install of 5.20.1, using all defaults, and have repeatedly re-done a clean install from scratch, but with same results.

Anyone have a clue what is causing these inconsistent "not found" errors? And is there a log or other diagnostic tools I can use to see what actually is going wrong in the package downloads?

Martin.

PPM Status on two attempts to install DateTime:

DateTime marked for install
DateTime depends on DateTime-Locale
DateTime depends on Params-Validate
DateTime depends on DateTime-TimeZone
DateTime depends on Class-Singleton
DateTime depends on List-AllUtils
DateTime depends on DateTime-TimeZone-Local-Win32
Installing 7 packages ...
Downloading DateTime-1.12 ... not found
Installing 7 packages failed

ERROR: 404 Not Found
Installing 7 packages ...
Downloading DateTime-1.12 ... done
Downloading DateTime-Locale-0.45 ... done
Downloading Params-Validate-1.13 ... not found
Installing 7 packages failed

ERROR: 404 Not Found

grahams
ActiveState Staff
Mon, 2014-12-01 11:14

Which dumps the tail of the error log.

You may not see much more than the "GET", the URL, and the 404.

I'm not seeing any issues from our side. Inconsistency suggests it's likely to be something in the transport over the internet. One possible work-around might be to install those dependencies separately so that it eventually no longer needs to pull anything except the DateTime module.

mafoo | Wed, 2014-12-03 02:25

I know it doesn't help directly with this specific issue but it helps if you find this post through 'insert search favourite engine here' and are trying to run upgrades.
using 'ppm upgrade --install' installs the updates one by one rather than batch which means it skips any packages it fails to upgrade rather than aborting the whole install. Then you can keep repeating the command each time (and the failed list gets smaller so faster)

mafoo | Wed, 2014-12-03 02:18

I am also seeing this problem here is the tail of the ppm log

2014-12-03T10:09:31 <6> [Web.pm:108] GET http://ppm4.activestate.com/MSWin32-x64/5.20/2000/H/HM/HMBRAND/DBD-CSV-0... ==> 200 OK (17476 bytes in 0.47 sec - 36 KB/s)
2014-12-03T10:09:31 <6> [Web.pm:108] GET http://ppm4.activestate.com/MSWin32-x64/5.20/2000/A/AM/AMBS/ExtUtils-CBu... ==> 404 Not Found (333 bytes in 0.56 sec - 1 KB/s)
2014-12-03T10:09:31 <3> [GUI.pm:2012] 404 Not Found at C:/Perl64/lib/ActivePerl/PPM/Client.pm line 1321.

I used wire shark to sniff what was happening, here is the decoded TCP stream (if you need the actual capture file please let me know how/where to get it to you)

Sent

GET /MSWin32-x64/5.20/2000/A/AM/AMBS/ExtUtils-CBuilder-0.280220.tar.gz HTTP/1.1
TE: deflate,gzip;q=0.3
Keep-Alive: 300
Connection: Keep-Alive, TE
Accept-Encoding: gzip, deflate
Host: ppm4.activestate.com
User-Agent: PPM/4.19 ActivePerl/5.20.1.2000 (MSWin32) libwww-perl/6.08

Reply

HTTP/1.1 404 Not Found
Date: Wed, 03 Dec 2014 10:09:31 GMT
Server: Apache
Content-Length: 333
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /MSWin32-x64/5.20/2000/A/AM/AMBS/ExtUtils-CBuilder-0.280220.tar.gz was not found on this server.</p>
<hr>
<address>Apache Server at ppm4.activestate.com Port 80</address>
</body></html>

mafoo | Wed, 2014-12-03 03:26

a manual browse of the ppm site reveals that the '-' base folder is missing in
http://ppm4.activestate.com/MSWin32-x64/5.20/2000/
this is where dmake is normally kept (/-/--/MINGW/dmake-4.11.20080107.ppd)

also refreshing that folder occasionally reports a 404 (like one of the servers I am talking to is out of sync?)

grahams
ActiveState Staff
Mon, 2014-12-08 12:36

Manual resync and forced sync of backups has cleared up both conditions.