diff options
author | Eric Wong <e@80x24.org> | 2023-08-31 08:38:57 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-09-01 06:04:14 +0000 |
commit | 36c0c299ee9a8bb9cd6a64c516e395e6f2ebe478 (patch) | |
tree | 14f34be13d954933a32f95f6db4838ddcd2f736c /lib/PublicInbox/XapHelper.pm | |
parent | afc61ae0464000121f67414777f1feccfcce6d13 (diff) | |
download | public-inbox-36c0c299ee9a8bb9cd6a64c516e395e6f2ebe478.tar.gz |
It's possible for a long mset streaming operation to hit missing documents after a database reopen if deletes hit the DB.
Diffstat (limited to 'lib/PublicInbox/XapHelper.pm')
-rw-r--r-- | lib/PublicInbox/XapHelper.pm | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/PublicInbox/XapHelper.pm b/lib/PublicInbox/XapHelper.pm index ef6a47a3..36266e65 100644 --- a/lib/PublicInbox/XapHelper.pm +++ b/lib/PublicInbox/XapHelper.pm @@ -37,9 +37,15 @@ sub cmd_test_inspect { } sub iter_retry_check ($) { - die unless ref($@) =~ /\bDatabaseModifiedError\b/; - $_[0]->{srch}->reopen; - undef; # retries + if (ref($@) =~ /\bDatabaseModifiedError\b/) { + $_[0]->{srch}->reopen; + undef; # retries + } elsif (ref($@) =~ /\bDocNotFoundError\b/) { + warn "doc not found: $@"; + 0; # continue to next doc + } else { + die; + } } sub dump_ibx_iter ($$$) { |