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?