From: Eric Wong Date: Mon, 1 Feb 2021 08:28:19 +0000 (-1000) Subject: sharedkv: release {dbh} before rmtree X-Git-Tag: v1.7.0~1262 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=a480fead6bf174973289e326425dc82f609414e0;p=public-inbox.git sharedkv: release {dbh} before rmtree This may be needed to avoid warnings/errors when operating in single process mode in the future. --- diff --git a/lib/PublicInbox/SharedKV.pm b/lib/PublicInbox/SharedKV.pm index 94f2429f..f5d09cc1 100644 --- a/lib/PublicInbox/SharedKV.pm +++ b/lib/PublicInbox/SharedKV.pm @@ -145,8 +145,15 @@ SELECT COUNT(k) FROM kv sub DESTROY { my ($self) = @_; + delete $self->{dbh}; my $dir = delete $self->{"tmp$$.$self"} or return; - rmtree($dir); + my $tries = 0; + do { + $! = 0; + eval { rmtree($dir) }; + } while ($@ && $!{ENOENT} && $tries++ < 5); + warn "error removing $dir: $@" if $@; + warn "Took $tries tries to remove $dir\n" if $tries; } 1;