From: Eric Wong Date: Mon, 28 Nov 2022 05:31:05 +0000 (+0000) Subject: lei_mirror: default to single job by default X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=27a70ce10d646878b4dd425417d6c352ba79925a;p=public-inbox.git lei_mirror: default to single job by default Parallel git clones are expensive on the server-side, and smaller machines (which we encourage) can't handle them, well. We'll also set `-q' since parallel clones will have output step all over each other. --- diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index a0b197a7..285c64d8 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -87,7 +87,8 @@ sub clone_cmd { # e.g.: git -c http.proxy=socks5h://127.0.0.1:9050 push(@cmd, '-c', $_) for @{$lei->{opt}->{c} // []}; push @cmd, qw(clone --mirror); - push @cmd, '-q' if $lei->{opt}->{quiet}; + push @cmd, '-q' if $lei->{opt}->{quiet} || + ($lei->{opt}->{jobs} // 1) > 1; push @cmd, '-v' if $lei->{opt}->{verbose}; # XXX any other options to support? # --reference is tricky with multiple epochs... @@ -236,7 +237,7 @@ sub clone_v1 { my $pfx = $curl->torsocks($lei, $uri) or return; my $dst = $self->{cur_dst} // $self->{dst}; my $fini = PublicInbox::OnDestroy->new($$, \&v1_done, $self); - my $jobs = $self->{lei}->{opt}->{jobs} // 2; + my $jobs = $self->{lei}->{opt}->{jobs} // 1; my $cmd = [ @$pfx, clone_cmd($lei, my $opt = {}), "$uri", $dst ]; $lei->qerr("# @$cmd"); $LIVE{spawn($cmd, undef, $opt)} = [ \&reap_clone, $lei, $cmd, $fini ]; @@ -385,7 +386,7 @@ failed to extract epoch number from $src $LIVE{_try_config_start($task)} = [ \&_try_config_done, $task, $fini ]; $task->{-locked} = $lk->lock_for_scope($$); my @cmd = clone_cmd($lei, my $opt = {}); - my $jobs = $self->{lei}->{opt}->{jobs} // 2; + my $jobs = $self->{lei}->{opt}->{jobs} // 1; do { reap_live() while keys(%LIVE) >= $jobs; while (keys(%LIVE) < $jobs && @src_edst && @@ -498,7 +499,7 @@ sub try_manifest { } my ($path_pfx, $n, $multi) = multi_inbox($self, \$path, $m); return $lei->child_error(1, $multi) if !ref($multi); - my $jobs = $self->{lei}->{opt}->{jobs} // 2; + my $jobs = $self->{lei}->{opt}->{jobs} // 1; if (my $v2 = delete $multi->{v2}) { for my $name (sort keys %$v2) { my $epochs = delete $v2->{$name};