Re: cpan.org Metadata and modules files not being updated
[email protected] (James E Keenan) Sat, 21 Mar 2026 23:19:19 -0400
| Newsgroups | perl.cpan.workers |
|---|---|
| Message-ID | <[email protected]> |
On 3/21/26 09:31, James E Keenan wrote:
> Having a problem which first becomes apparent running the 'cpan' shell,
> but then points toward the cpan.org infrastructure.
>
> Yesterday I installed perl-5.43.9 on by two servers (Linux and FreeBSD).
> Here I present data from FreeBSD:
> ```
> [perlmonger: perl-5.43.9] $ ls -l bin/perl bin/cpan
> -rwxr-xr-x 1 jkeenan jkeenan 8418 Mar 20 14:56 bin/cpan
> -rwxr-xr-x 2 jkeenan jkeenan 4080848 Mar 20 14:56 bin/perl
> $ ./bin/perl -v | head -2 | tail -1
> This is perl 5, version 43, subversion 9 (v5.43.9) built for amd64-
> freebsd-thread-multi
> $ ./bin/cpan -v
> ./bin/cpan script version 1.678, CPAN.pm version 2.38
> ```
> I then installed Task::CPAN::Reporter against that perl (including a
> trial release of Net-SSLeay-1.95_001) and then proceeded to generate
> CPANtester reports for over 500 distros on each platform.
>
> I subsequently received email indicating that some of the problems I
> reported had already been fixed. I went back to those new perl
> installations and tried to use the `cpan` shell to install the updated
> distros.
> ```
> $ cd $TESTINGDIR/perl-5.43.9
> $ ./bin/cpan
>
> cpan[1]> reload index
> Reading '/home/jkeenan/.cpan/Metadata'
> Database was generated on Mon, 09 Feb 2026 15:41:01 GMT
> Fetching with HTTP::Tiny:
> https://cpan.org/authors/01mailrc.txt.gz
> Reading '/home/jkeenan/.cpan/sources/authors/01mailrc.txt.gz'
> ............................................................................DONE
> Fetching with HTTP::Tiny:
> https://cpan.org/modules/02packages.details.txt.gz
> Reading '/home/jkeenan/.cpan/sources/modules/02packages.details.txt.gz'
> Database was generated on Mon, 09 Feb 2026 15:41:01 GMT
> Warning: This index file is 39 days old.
> Please check the host you chose as your CPAN mirror for staleness.
> I'll continue but problems seem likely to happen.
> ............................................................................DONE
> Fetching with HTTP::Tiny:
> https://cpan.org/modules/03modlist.data.gz
> Reading '/home/jkeenan/.cpan/sources/modules/03modlist.data.gz'
> DONE
> Writing /home/jkeenan/.cpan/Metadata
> ```
> Note these two lines in the output above:
> ```
> Database was generated on Mon, 09 Feb 2026 15:41:01 GMT
>
> Database was generated on Mon, 09 Feb 2026 15:41:01 GMT
> Warning: This index file is 39 days old.
> Please check the host you chose as your CPAN mirror for staleness.
> I'll continue but problems seem likely to happen.
> ```
> I get a console beep when that line `Warning: Ths index file is 39 days
> old.` appears.
>
> Today, 21 Mar 2026, is 40 days after 09 Feb 2026. Now my *local* CPAN
> metadata files are up-to-date:
> ```
> $ ls -l ~/.cpan/Metadata ~/.cpan/sources/modules ~/.cpan/sources/authors
> /
> -rw-r--r-- 1 jkeenan jkeenan 44358810 Mar 21 13:05 /home/jkeenan/.cpan/
> Metadata
>
> /home/jkeenan/.cpan/sources/authors/:
> total 273
> -rw-r--r-- 1 jkeenan jkeenan 250949 Mar 21 13:05 01mailrc.txt.gz
> drwxr-xr-x 28 jkeenan jkeenan 28 May 20 2021 id
>
> /home/jkeenan/.cpan/sources/modules:
> total 2549
> -rw-r--r-- 1 jkeenan jkeenan 2592931 Mar 21 13:05
> 02packages.details.txt.gz
> -rw-r--r-- 1 jkeenan jkeenan 248 Mar 21 13:05 03modlist.data.gz
> ```
> So what it appears is happening is that the files on cpan.org are out-
> of-date:
> ```
> https://cpan.org/authors/01mailrc.txt.gz
>
> https://cpan.org/modules/02packages.details.txt.gz
> ```
> The problem appears to be that **inside** the local
> `02packages.details.txt.gz` file, the `Last-Updated` entry is still 09
> Feb 2026.
> ```
> $ zcat ~/.cpan/sources/modules/02packages.details.txt.gz | head
> File: 02packages.details.txt
> URL: http://www.cpan.org/modules/02packages.details.txt
> Description: Package names found in directory $CPAN/authors/id/
> Columns: package name, version, path
> Intended-For: Automated fetch routines, namespace documentation.
> Written-By: PAUSE version 1.005
> Line-Count: 270470
> Last-Updated: Mon, 09 Feb 2026 15:41:01 GMT
>
> A1z::Html 0.04 C/CE/CEEJAY/A1z-Html-0.04.tar.gz
> ```
> So every time I say `reload index` inside the `cpan` shell, I'm getting
> the same 40-day-old data every time. I note, for instance, that in
> 02packages I don't see the latest version of a CPAN distro which I
> uploaded on 03 March.
> ```
> $ zgrep -n 'Business::Tax::US' ~/.cpan/sources/modules/02packages.detail
> s.txt.gz
> 30869:Business::Tax::US::Form_1040::Worksheets 0.07 J/JK/JKEENAN/
> Business-Tax-US-Form_1040-Worksheets-0.07.tar.gz
> ```
> ... whereas metacpan.org correctly has version 0.08 uploaded on March 3.
> ```
> https://metacpan.org/pod/Business::Tax::US::Form_1040::Worksheets
> ```
> Where should this be further reported?
>
>
After many hours of head-banging-on-wall, I got the 'cpan' shell on one
of my two servers to DWIM -- though I don't know why it achieved the
result I wanted.
I had to compare the ~/.cpan/CPAN/MyConfig.pm file on my laptop -- which
was already DWIMming -- with that on my Linux server. I observed
differences in 2 of the key-value pairs:
KVP Laptop (Ubuntu 24.04 LTS) Server (Debian)
pushy_https 0 1
urllist 0 [https://cpan.metacpan.org/] 0 [http://www.cpan.org/]
I used 'o conf' to change those 2 values on the server to match the
laptop. I then called 'reload cpan' and 'reload index'. After
committing those changes and exiting the 'cpan' shell, I issued two
commands suggested by mauke on irc.perl.org #p5p:
#####
$ zgrep -n 'Last-Updated'
~/.cpan/sources/modules/02packages.details.txt.gz ; \
perl -MStorable -wE 'my $m = retrieve $ARGV[0]; say $m->{DATE_OF_02}. "
| " . localtime($m->{last_time})' ~/.cpan/Metadata
8:Last-Updated: Sun, 22 Mar 2026 02:17:03 GMT
Sun, 22 Mar 2026 02:17:03 GMT | Sun Mar 22 03:02:16 2026
#####
... which was equivalent to what I was getting on my laptop.
I then attempted to test XML-Parser against perl-5.43.9. For two days I
could only get XML-Parser-2.47. Now I was able to fetch and install
XML-Parser-2.51.
Can anyone explain why these incantations worked?