From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id A71A81F8C8; Mon, 27 Sep 2021 19:33:46 +0000 (UTC) Date: Mon, 27 Sep 2021 19:33:46 +0000 From: Eric Wong To: Konstantin Ryabitsev Cc: meta@public-inbox.org Subject: -fetch failures [was: latest make test failures on CentOS-7] Message-ID: <20210927193346.GA18520@dcvr> References: <20210927124056.kj5okiefvs4ztk27@meerkat.local> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20210927124056.kj5okiefvs4ztk27@meerkat.local> List-Id: Konstantin Ryabitsev wrote: > t/v2mirror.t ................. 71/? W: /tmp/pi-v2mirror-39373-Dl1N/m/git/3.git missing remote.origin.url > fatal: not a git repository: '/tmp/pi-v2mirror-39373-Dl1N/m/git/3.git' > git --git-dir=/tmp/pi-v2mirror-39373-Dl1N/m/git/3.git fetch -q failed > Bailout called. Further testing stopped: -fetch failed > FAILED--Further testing stopped: -fetch failed > make: *** [test_dynamic] Error 255 > > FYI, this is git 2.31.1. I'm not seeing this at all with 2.31.1, 2.20, 2.33... I wonder if there's a permissions problem or some latent GIT_* var in env... Are you testing as root? I think that would be broken, yes. The partial fetching would need some work to support working as root. > I'll be happy to help troubleshoot things as necessary. Otherwise, dumping the config and some more info could help... diff --git a/lib/PublicInbox/Fetch.pm b/lib/PublicInbox/Fetch.pm index 7881b402e3f6..a5e4c43c039b 100644 --- a/lib/PublicInbox/Fetch.pm +++ b/lib/PublicInbox/Fetch.pm @@ -122,6 +122,10 @@ sub do_fetch { # main entry point $epoch = $nr; } else { warn "W: $edir missing remote.origin.url\n"; + my $pid = spawn([qw(git config -l)], undef, + { 1 => $lei->{2}, 2 => $lei->{2} }); + waitpid($pid, 0); + $lei->child_error($?) if $?; } } @epochs = grep { !$skip->{$_} } @epochs if $skip; diff --git a/t/v2mirror.t b/t/v2mirror.t index 63d17ebfebba..e3936919306b 100644 --- a/t/v2mirror.t +++ b/t/v2mirror.t @@ -5,6 +5,7 @@ use v5.10.1; use PublicInbox::TestCommon; use File::Path qw(remove_tree make_path); use Cwd qw(abs_path); +use Carp (); use PublicInbox::Spawn qw(which); require_git(2.6); require_cmd('curl'); @@ -102,7 +103,9 @@ my @new_epochs; my $fetch_each_epoch = sub { my %before = map { $_ => 1 } glob("$tmpdir/m/git/*"); run_script([qw(-fetch --exit-code -q)], undef, {-C => "$tmpdir/m"}) or - xbail '-fetch fail'; + xbail('-fetch fail ', + [ xqx([which('find'), "$tmpdir/m", qw(-type f -ls) ]) ], + Carp::longmess()); is($?, 0, '--exit-code 0 after fetch updated'); my @after = grep { !$before{$_} } glob("$tmpdir/m/git/*"); push @new_epochs, @after;