lib/PublicInbox/Xapcmd.pm | 7 ++++++- diff --git a/lib/PublicInbox/Xapcmd.pm b/lib/PublicInbox/Xapcmd.pm index 784140416e7fe5bb0ff3d0dfd86b24c28ba601da..a57fa5597030191a14e07e274104789e306fc50e 100644 --- a/lib/PublicInbox/Xapcmd.pm +++ b/lib/PublicInbox/Xapcmd.pm @@ -23,6 +23,7 @@ my $reindex = $opt->{reindex}; $SIG{INT} or die 'BUG: $SIG{INT} not handled'; my @old_shard; + my $over_chg; while (my ($old, $newdir) = each %$tmp) { next if $old eq ''; # no invalid paths @@ -39,7 +40,7 @@ $over = PublicInbox::Over->new($over); my $tmp_over = "$new/over.sqlite3"; $over->connect->sqlite_backup_to_file($tmp_over); $over = undef; - syswrite($im->{lockfh}, '.'); # trigger ->check_inodes + $over_chg = 1; } if (!defined($new)) { # culled shard @@ -60,6 +61,10 @@ remove_tree($prev) or die "failed to remove $prev: $!\n"; } } + + # trigger ->check_inodes in read-only daemons + syswrite($im->{lockfh}, '.') if $over_chg; + remove_tree(@old_shard); $tmp = undef; if (!$opt->{-coarse_lock}) {