cpan-testers / CPAN-Reporter

(Perl) Adds CPAN Testers reporting to CPAN.pm
http://search.cpan.org/dist/CPAN-Reporter/
20 stars 18 forks source link

Unable to submit reports on FreeBSD-12: 'missing module' or 'fact submission failed' #98

Closed jkeenan closed 3 years ago

jkeenan commented 3 years ago

As originally reported elsewhere, when I attempt to send CPANtesters reports on FreeBSD-12, I do not succeed.

I. On FreeBSD-12 I have CPAN::Reporter and Task::CPAN::Reporter installed. In ~/.cpan/CPAN/MyConfig.pm I have set: test_report' => q[1].

But when I use the cpan shell to install or test CPAN distros, no test report is generated or sent. Here is typical output:

cpan[2]> test ExtUtils::ModuleMaker
Running test for module 'ExtUtils::ModuleMaker'
Checksum for /home/jkeenan/.cpan/sources/authors/id/J/JK/JKEENAN/ExtUtils-ModuleMaker-0.63.tar.gz ok
Configuring J/JK/JKEENAN/ExtUtils-ModuleMaker-0.63.tar.gz with Makefile.PL

CPAN::Reporter: error loading Test::Reporter::Transport::Metabase.
Please install the missing module or choose a different transport mechanism.

Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for ExtUtils::ModuleMaker
Writing MYMETA.yml and MYMETA.json
(/usr/local/bin/perl Makefile.PL exited with 0)
CPAN::Reporter: Makefile.PL result is 'pass', No errors.
  JKEENAN/ExtUtils-ModuleMaker-0.63.tar.gz
  /usr/local/bin/perl Makefile.PL -- OK
Running make for J/JK/JKEENAN/ExtUtils-ModuleMaker-0.63.tar.gz

CPAN::Reporter: error loading Test::Reporter::Transport::Metabase.
Please install the missing module or choose a different transport mechanism. 

II. Stumbling around I came to this web site: https://metabase.cpantesters.org/api/v1/

I then modified my ~/.cpanreporter/config.ini file to read:

edit_report=default:ask/no pass/na:no
email_from=jkeenan@cpan.org
send_report=default:ask/yes pass/na:yes
#transport=Metabase uri https://metabase.cpantesters.org/api/v1/ id_file metabase_id.json
transport=Metabase uri https://metabase.cpantesters.org/api/v1/submit/CPAN-Testers-Report id_file metabase_id.json

I then went into the cpan shell and called test on one of my own distros. I got no better results:

CPAN::Reporter: Test result is 'pass', All tests successful.
CPAN::Reporter: preparing a CPAN Testers report for List-Compare-0.55
CPAN::Reporter: sending test report with 'pass' via Metabase
CPAN::Reporter: Test::Reporter: error from 'Test::Reporter::Transport::Metabase:'
fact submission failed: Not Found at /usr/local/lib/perl5/site_perl/Metabase/Client/Simple.pm line 129.
    Metabase::Client::Simple::submit_fact(Metabase::Client::Simple=HASH(0x80bc8ebe8), CPAN::Testers::Report=HASH(0x80c026960)) called at /usr/local/lib/perl5/site_perl/Test/Reporter/Transport/Metabase.pm line 122
    Test::Reporter::Transport::Metabase::send(Test::Reporter::Transport::Metabase=HASH(0x814193540), Test::Reporter=HASH(0x814081cf0)) called at /usr/local/lib/perl5/site_perl/Test/Reporter.pm line 272
    eval {...} called at /usr/local/lib/perl5/site_perl/Test/Reporter.pm line 272
    Test::Reporter::send(Test::Reporter=HASH(0x814081cf0)) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 495
    CPAN::Reporter::_dispatch_report(HASH(0x814192fa8)) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 107
    CPAN::Reporter::grade_test(CPAN::Distribution=HASH(0x812d7df78), "/usr/bin/make test", ARRAY(0x8142700c0), 0) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 202
    CPAN::Reporter::test(CPAN::Distribution=HASH(0x812d7df78), "/usr/bin/make test") called at /usr/local/lib/perl5/5.32/CPAN/Distribution.pm line 3786
    CPAN::Distribution::test(CPAN::Distribution=HASH(0x812d7df78)) called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 484
    eval {...} called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 483
    CPAN::Module::rematein(CPAN::Module=HASH(0x810bea7b0), "test") called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 513
    CPAN::Module::test(CPAN::Module=HASH(0x810bea7b0)) called at /usr/local/lib/perl5/5.32/CPAN/Shell.pm line 1901
    CPAN::Shell::rematein("CPAN::Shell", "test", "List::Compare") called at /usr/local/lib/perl5/5.32/CPAN/Shell.pm line 2068
    CPAN::Shell::__ANON__("CPAN::Shell", "List::Compare") called at /usr/local/lib/perl5/5.32/CPAN.pm line 381
    eval {...} called at /usr/local/lib/perl5/5.32/CPAN.pm line 378
    CPAN::shell() called at /usr/local/lib/perl5/5.32/App/Cpan.pm line 416
    App::Cpan::_process_options("App::Cpan") called at /usr/local/lib/perl5/5.32/App/Cpan.pm line 512
    App::Cpan::run("App::Cpan") called at /usr/local/bin/cpan line 18

The relevant part of /usr/local/lib/perl5/site_perl/Metabase/Client/Simple.pm is:

 92 sub submit_fact {
 93     my ( $self, $fact ) = @_;
 94
...
129     unless ( $res->{success} ) {
130         Carp::confess $self->_error( $res => "fact submission failed" );
131     }

For the record, the last CPANtesters reports I was able to send from this machine were transmitted on Aug 02 2020. I have installed many modules on this machine since then, but Apr 27 2021 was the first time I thought to look for a CPANtesters report being generated.

I originally reported this problem on list in a thread starting at https://www.nntp.perl.org/group/perl.cpan.testers.discuss/2021/04/msg4505.html. However, I got no response whatsoever, nor did I here from anyone when I posted on irc.perl.org #cpantesters-discuss.

This problem appears similar to that reported earlier in https://github.com/cpan-testers/CPAN-Reporter/issues/82.

Thank you very much. Jim Keenan

karenetheridge commented 3 years ago

129 unless ( $res->{success} ) {

I would suggest dumping the entire content of $res to see what the error was.

eserte commented 3 years ago

Using https://metabase.cpantesters.org/api/v1/submit/CPAN-Testers-Report as submit URL for sure won't work. Try https://metabase.cpantesters.org/api/v1/submit/instead (already commented out in your ini file).

jkeenan commented 3 years ago

Using https://metabase.cpantesters.org/api/v1/submit/CPAN-Testers-Report as submit URL for sure won't work. Try https://metabase.cpantesters.org/api/v1/submit/instead (already commented out in your ini file).

Resetting my configuration:

$ cat ~/.cpanreporter/config.ini 
edit_report=default:ask/no pass/na:no
email_from=jkeenan@cpan.org
send_report=default:ask/yes pass/na:yes
transport=Metabase uri https://metabase.cpantesters.org/api/v1/submit/ id_file metabase_id.json
#transport=Metabase uri https://metabase.cpantesters.org/api/v1/submit/CPAN-Testers-Report id_file metabase_id.json

Running the cpan shell:

$ cpan 
Loading internal logger. Log::Log4perl recommended for better logging
Terminal does not support AddHistory.

To fix that, maybe try>  install Term::ReadLine::Perl

cpan shell -- CPAN exploration and modules installation (v2.27)
Enter 'h' for help.

cpan[1]> test List::Compare
Reading '/home/jkeenan/.cpan/Metadata'
  Database was generated on Wed, 28 Apr 2021 00:17:03 GMT
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/home/jkeenan/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/home/jkeenan/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Mon, 03 May 2021 18:17:03 GMT
.............
  New CPAN.pm version (v2.28) available.
  [Currently running version is v2.27]
  You might want to try
    install CPAN
    reload cpan
  to both upgrade CPAN.pm and run the new version without leaving
  the current session.

...............................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/home/jkeenan/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /home/jkeenan/.cpan/Metadata
Running test for module 'List::Compare'
Checksum for /home/jkeenan/.cpan/sources/authors/id/J/JK/JKEENAN/List-Compare-0.55.tar.gz ok
Scanning cache /home/jkeenan/.cpan/build for sizes
..........................................................................--DONE
[snip]
Configuring J/JK/JKEENAN/List-Compare-0.55.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for List::Compare
Writing MYMETA.yml and MYMETA.json
(/usr/local/bin/perl Makefile.PL exited with 0)
CPAN::Reporter: Makefile.PL result is 'pass', No errors.
  JKEENAN/List-Compare-0.55.tar.gz
  /usr/local/bin/perl Makefile.PL -- OK
Running make for J/JK/JKEENAN/List-Compare-0.55.tar.gz
cp lib/List/Compare/Functional.pm blib/lib/List/Compare/Functional.pm
cp lib/List/Compare/Base/_Auxiliary.pm blib/lib/List/Compare/Base/_Auxiliary.pm
cp lib/List/Compare.pm blib/lib/List/Compare.pm
cp lib/List/Compare/Base/_Engine.pm blib/lib/List/Compare/Base/_Engine.pm
Manifying 4 pod documents
(/usr/bin/make exited with 0)
CPAN::Reporter: make result is 'pass', No errors.
  JKEENAN/List-Compare-0.55.tar.gz
  /usr/bin/make -- OK
Running make test for JKEENAN/List-Compare-0.55.tar.gz
PERL_DL_NONLAZY=1 "/usr/local/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01_oo_lists_dual_reg_sorted.t ......... ok
[snip]
t/91_func_errors.t ...................... ok
All tests successful.
Files=52, Tests=4190,  7 wallclock secs ( 0.36 usr  0.06 sys +  6.16 cusr  0.88 csys =  7.45 CPU)
Result: PASS
(/usr/bin/make test exited with 0)
CPAN::Reporter: Test result is 'pass', All tests successful.
CPAN::Reporter: preparing a CPAN Testers report for List-Compare-0.55
CPAN::Reporter: sending test report with 'pass' via Metabase
CPAN::Reporter: Test::Reporter: error from 'Test::Reporter::Transport::Metabase:'
fact submission failed: Not Found at /usr/local/lib/perl5/site_perl/Metabase/Client/Simple.pm line 129.
    Metabase::Client::Simple::submit_fact(Metabase::Client::Simple=HASH(0x8138573c0), CPAN::Testers::Report=HASH(0x813c07d80)) called at /usr/local/lib/perl5/site_perl/Test/Reporter/Transport/Metabase.pm line 122
    Test::Reporter::Transport::Metabase::send(Test::Reporter::Transport::Metabase=HASH(0x813caac48), Test::Reporter=HASH(0x815a9fd68)) called at /usr/local/lib/perl5/site_perl/Test/Reporter.pm line 272
    eval {...} called at /usr/local/lib/perl5/site_perl/Test/Reporter.pm line 272
    Test::Reporter::send(Test::Reporter=HASH(0x815a9fd68)) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 495
    CPAN::Reporter::_dispatch_report(HASH(0x813c0e198)) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 107
    CPAN::Reporter::grade_test(CPAN::Distribution=HASH(0x80bd24708), "/usr/bin/make test", ARRAY(0x815a9bf30), 0) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 202
    CPAN::Reporter::test(CPAN::Distribution=HASH(0x80bd24708), "/usr/bin/make test") called at /usr/local/lib/perl5/5.32/CPAN/Distribution.pm line 3786
    CPAN::Distribution::test(CPAN::Distribution=HASH(0x80bd24708)) called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 484
    eval {...} called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 483
    CPAN::Module::rematein(CPAN::Module=HASH(0x8117f48d0), "test") called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 513
    CPAN::Module::test(CPAN::Module=HASH(0x8117f48d0)) called at /usr/local/lib/perl5/5.32/CPAN/Shell.pm line 1901
    CPAN::Shell::rematein("CPAN::Shell", "test", "List::Compare") called at /usr/local/lib/perl5/5.32/CPAN/Shell.pm line 2068
    CPAN::Shell::__ANON__("CPAN::Shell", "List::Compare") called at /usr/local/lib/perl5/5.32/CPAN.pm line 381
    eval {...} called at /usr/local/lib/perl5/5.32/CPAN.pm line 378
    CPAN::shell() called at /usr/local/lib/perl5/5.32/App/Cpan.pm line 416
    App::Cpan::_process_options("App::Cpan") called at /usr/local/lib/perl5/5.32/App/Cpan.pm line 512
    App::Cpan::run("App::Cpan") called at /usr/local/bin/cpan line 18

Terminal does not support GetHistory.
Lockfile removed.
  JKEENAN/List-Compare-0.55.tar.gz
  /usr/bin/make test -- OK

No change in results.

jkeenan commented 3 years ago

129 unless ( $res->{success} ) {

I would suggest dumping the entire content of $res to see what the error was.

Trimmed output of a script session of cpan session:

$ cat relevant.typescript 
All tests successful.
Files=52, Tests=4190,  7 wallclock secs ( 0.32 usr  0.08 sys +  6.05 cusr  0.95 csys =  7.40 CPU)
Result: PASS
(/usr/bin/make test exited with 0)
CPAN::Reporter: Test result is 'pass', All tests successful.
CPAN::Reporter: preparing a CPAN Testers report for List-Compare-0.55
CPAN::Reporter: sending test report with 'pass' via Metabase
$VAR1 = {
  'content' => '<!DOCTYPE html>
<!-- Request ID: c24a6116 -->
<html>
  <head>
    <title>Page not found (development mode)</title>
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="-1">
    <script src="/mojo/jquery/jquery.js"></script>
    <script src="/mojo/prettify/run_prettify.js"></script>
    <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
    <style>
<!-- snip output of style tag >
    </style>
  </head>
  <body>
    <div id="mojobar">

<!-- snip a lot of mojolicious output >
  </body>
</html>
',
  'url' => bless( do{\(my $o = 'https://89ba905c-cbbf-11e7-9f2a-1860c2004752%3A221a2e0f@metabase.cpantesters.org/api/v1/submit/submit/CPAN-Testers-Report')}, 'URI::https' ),
  'status' => 404,
  'headers' => {
    'date' => 'Mon, 03 May 2021 18:53:31 GMT',
    'x-cache' => 'MISS, MISS',
    'content-length' => '20975',
    'x-cache-hits' => '0, 0',
    'via' => '1.1 varnish, 1.1 varnish',
    'x-served-by' => 'cache-lcy19277-LCY, cache-lga21930-LGA',
    'content-type' => 'text/html;charset=UTF-8',
    'accept-ranges' => 'bytes',
    'connection' => 'keep-alive',
    'server' => 'Mojolicious (Perl)',
    'x-timer' => 'S1620068011.091207,VS0,VE97'
  },
  'protocol' => 'HTTP/1.1',
  'reason' => 'Not Found',
  'success' => ''
};
CPAN::Reporter: Test::Reporter: error from 'Test::Reporter::Transport::Metabase:'
fact submission failed: Not Found at /usr/local/lib/perl5/site_perl/Metabase/Client/Simple.pm line 131.
    Metabase::Client::Simple::submit_fact(Metabase::Client::Simple=HASH(0x80a1e0b40), CPAN::Testers::Report=HASH(0x80a1dff90)) called at /usr/local/lib/perl5/site_perl/Test/Reporter/Transport/Metabase.pm line 122
    Test::Reporter::Transport::Metabase::send(Test::Reporter::Transport::Metabase=HASH(0x81392a198), Test::Reporter=HASH(0x813819258)) called at /usr/local/lib/perl5/site_perl/Test/Reporter.pm line 272
    eval {...} called at /usr/local/lib/perl5/site_perl/Test/Reporter.pm line 272
    Test::Reporter::send(Test::Reporter=HASH(0x813819258)) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 495
    CPAN::Reporter::_dispatch_report(HASH(0x8139d37b0)) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 107
    CPAN::Reporter::grade_test(CPAN::Distribution=HASH(0x8129a65d0), "/usr/bin/make test", ARRAY(0x8139d3438), 0) called at /usr/local/lib/perl5/site_perl/CPAN/Reporter.pm line 202
    CPAN::Reporter::test(CPAN::Distribution=HASH(0x8129a65d0), "/usr/bin/make test") called at /usr/local/lib/perl5/5.32/CPAN/Distribution.pm line 3786
    CPAN::Distribution::test(CPAN::Distribution=HASH(0x8129a65d0)) called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 484
    eval {...} called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 483
    CPAN::Module::rematein(CPAN::Module=HASH(0x810a1b480), "test") called at /usr/local/lib/perl5/5.32/CPAN/Module.pm line 513
    CPAN::Module::test(CPAN::Module=HASH(0x810a1b480)) called at /usr/local/lib/perl5/5.32/CPAN/Shell.pm line 1901
    CPAN::Shell::rematein("CPAN::Shell", "test", "List::Compare") called at /usr/local/lib/perl5/5.32/CPAN/Shell.pm line 2068
    CPAN::Shell::__ANON__("CPAN::Shell", "List::Compare") called at /usr/local/lib/perl5/5.32/CPAN.pm line 381
    eval {...} called at /usr/local/lib/perl5/5.32/CPAN.pm line 378
    CPAN::shell() called at /usr/local/lib/perl5/5.32/App/Cpan.pm line 416
    App::Cpan::_process_options("App::Cpan") called at /usr/local/lib/perl5/5.32/App/Cpan.pm line 512
    App::Cpan::run("App::Cpan") called at /usr/local/bin/cpan line 18

Terminal does not support GetHistory.
Lockfile removed.
eserte commented 3 years ago

Sorry, you have also to remove "submit/" from the URL. It is just https://metabase.cpantesters.org/api/v1/

jkeenan commented 3 years ago

Sorry, you have also to remove "submit/" from the URL. It is just https://metabase.cpantesters.org/api/v1/

$ cat config.ini
edit_report=default:ask/no pass/na:no
email_from=jkeenan@cpan.org
send_report=default:ask/yes pass/na:yes
transport=Metabase uri https://metabase.cpantesters.org/api/v1/ id_file metabase_id.json

Note that this returns me to the key-value pair that I started out with (see the #commented out KVP in section 'II' of my first post in this ticket).

However, it appears to have worked. Two instances, one of test and one of install:

$VAR1 = {
  'content' => '{"guid":"672505ac-ac50-11eb-a9db-ec174318443d"}',
  'success' => 1,
  'reason' => 'Created',
  'status' => 201,
  'headers' => {
    'content-type' => 'application/json;charset=UTF-8',
    'x-cache-hits' => '0, 0',
    'accept-ranges' => 'bytes',
    'server' => 'Mojolicious (Perl)',
    'date' => 'Mon, 03 May 2021 20:44:51 GMT',
    'via' => '1.1 varnish, 1.1 varnish',
    'x-cache' => 'MISS, MISS',
    'x-timer' => 'S1620074690.631440,VS0,VE2220',
    'location' => '/api/v1/guid/672505ac-ac50-11eb-a9db-ec174318443d',
    'content-length' => '47',
    'x-served-by' => 'cache-lcy19263-LCY, cache-lga21963-LGA',
    'connection' => 'keep-alive'
  },
  'url' => bless( do{\(my $o = 'https://89ba905c-cbbf-11e7-9f2a-1860c2004752%3A221a2e0f@metabase.cpantesters.org/api/v1/submit/CPAN-Testers-Report')}, 'URI::https' ),
  'protocol' => 'HTTP/1.1'
};
CPAN::Reporter: Test result is 'pass', All tests successful.
CPAN::Reporter: preparing a CPAN Testers report for Devel-NYTProf-6.09
CPAN::Reporter: sending test report with 'pass' via Metabase
$VAR1 = {
  'success' => 1,
  'reason' => 'Created',
  'status' => 201,
  'protocol' => 'HTTP/1.1',
  'url' => bless( do{\(my $o = 'https://89ba905c-cbbf-11e7-9f2a-1860c2004752%3A221a2e0f@metabase.cpantesters.org/api/v1/submit/CPAN-Testers-Report')}, 'URI::https' ),
  'headers' => {
    'content-type' => 'application/json;charset=UTF-8',
    'date' => 'Mon, 03 May 2021 20:47:56 GMT',
    'via' => '1.1 varnish, 1.1 varnish',
    'server' => 'Mojolicious (Perl)',
    'x-cache-hits' => '0, 0',
    'accept-ranges' => 'bytes',
    'x-timer' => 'S1620074874.739676,VS0,VE2272',
    'x-cache' => 'MISS, MISS',
    'connection' => 'keep-alive',
    'x-served-by' => 'cache-lcy19245-LCY, cache-lga21949-LGA',
    'content-length' => '47',
    'location' => '/api/v1/guid/d4f214a8-ac50-11eb-abc5-6ac84318443d'
  },
  'content' => '{"guid":"d4f214a8-ac50-11eb-abc5-6ac84318443d"}'
};
  JKEENAN/Devel-NYTProf-6.09.tar.gz
  /usr/bin/make test -- OK
Running make install for JKEENAN/Devel-NYTProf-6.09.tar.gz

From the log file:

[2021-05-03T20:47:53Z] [James E Keenan] [pass] [JKEENAN/Devel-NYTProf-6.09.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.32.0] [d4f214a8-ac50-11eb-abc5-6ac84318443d] [2021-05-03T20:47:53Z]
...
[2021-05-03T20:44:49Z] [James E Keenan] [pass] [JKEENAN/List-Compare-0.55.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.32.0] [672505ac-ac50-11eb-a9db-ec174318443d] [2021-05-03T20:44:49Z]

Thank you very much for taking the time to investigate this. I hope to submit more installation-based reports in the future.