From: Eric Wong (Contractor, The Linux Foundation) Date: Sun, 1 Apr 2018 23:23:07 +0000 (+0000) Subject: v2writable: fix parallel termination X-Git-Tag: v1.1.0-pre1~81 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=537eb7ec8c0f8ebd6fa39807a08515ccd3c4be66 v2writable: fix parallel termination I was too aggressively disabling parallelization to speed up the test suite and broke this :x Re-enable parallelization for the v2reindex test so we can catch it later. --- diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index c8869bda..51723e55 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -204,9 +204,13 @@ sub idx_init { # need to create all parts before initializing msgmap FD my $max = $self->{partitions} - 1; - @{$self->{idx_parts}} = map { - PublicInbox::SearchIdxPart->new($self, $_, $skel); - } (0..$max); + + # idx_parts must be visible to all forked processes + my $idx = $self->{idx_parts} = []; + for my $i (0..$max) { + push @$idx, + PublicInbox::SearchIdxPart->new($self, $i, $skel); + } # Now that all subprocesses are up, we can open the FD for SQLite: $skel->_msgmap_init->{dbh}->begin_work; diff --git a/t/v2reindex.t b/t/v2reindex.t index b9540e4a..bf44fa0a 100644 --- a/t/v2reindex.t +++ b/t/v2reindex.t @@ -30,9 +30,8 @@ my $mime = PublicInbox::MIME->create( ], body => "hello world\n", ); - +local $ENV{NPROC} = 2; my $im = PublicInbox::V2Writable->new($ibx, 1); -$im->{parallel} = 0; foreach my $i (1..10) { $mime->header_set('Message-Id', "<$i\@example.com>"); ok($im->add($mime), "message $i added");