lib/PublicInbox/LEI.pm | 15 +++++++++------ diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm index f0caac03b1b622c2cfd24474f71c33aef963ec71..e529c86a853890b1adb2632db5c474d21b8f4329 100644 --- a/lib/PublicInbox/LEI.pm +++ b/lib/PublicInbox/LEI.pm @@ -1500,12 +1500,15 @@ } sub sto_done_request { # only call this from lei-daemon process (not workers) my ($lei, $sock) = @_; - if ($sock //= $lei->{sock}) { - $LIVE_SOCK{"$sock"} = $sock; - $lei->{sto}->ipc_do('done', "$sock"); # issue, async wait - } else { # forcibly wait - my $wait = $lei->{sto}->ipc_do('done'); - } + eval { + if ($sock //= $lei->{sock}) { # issue, async wait + $LIVE_SOCK{"$sock"} = $sock; + $lei->{sto}->ipc_do('done', "$sock"); + } else { # forcibly wait + my $wait = $lei->{sto}->ipc_do('done'); + } + }; + $lei->err($@) if $@; } sub sto_done_complete { # called in lei-daemon when LeiStore->done is complete