$err .= "shard close: $@\n" if $@;
}
}
- eval { $self->{over}->disconnect };
- $err .= "over disconnect: $@\n" if $@;
+ eval { $self->{over}->dbh_close };
+ $err .= "over close: $@\n" if $@;
delete $self->{bnote};
my $nbytes = $self->{total_bytes};
$self->{total_bytes} = 0;
$sync->{art_end} = $art_end;
if ($seq || !$self->{parallel}) {
my $shard_end = $self->{shards} - 1;
- for (0..$shard_end) {
- index_xap_step($self, $sync, $art_beg + $_)
+ for my $i (0..$shard_end) {
+ index_xap_step($self, $sync, $art_beg + $i);
+ if ($i != $shard_end) {
+ reindex_checkpoint($self, $sync);
+ }
}
} else { # parallel (maybe)
index_xap_step($self, $sync, $art_beg, 1);
my $s0 = PublicInbox::SearchIdx->new($self->{ibx}, 0, 0);
if (my $xdb = $s0->idx_acquire) {
my $n = $xdb->get_metadata('has_threadid');
- $xdb->set_metadata('has_threadid', 1) if $n ne '1';
+ $xdb->set_metadata('has_threadid', '1') if $n ne '1';
}
$s0->idx_release;
$self->lock_release;