From cd2b547780a0f66115710865543accf5282c59d3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 9 Jun 2021 10:03:05 +0000 Subject: lei/store: do eidx_init before creating R/W lms dbh Sharing lms->{dbh} with eidx shards appears to be the cause of the "Issuing rollback() due to DESTROY without explicit disconnect() of DBD::SQLite::db handle" messages I've been seeing from "lei up". --- lib/PublicInbox/LeiMailSync.pm | 5 ++--- lib/PublicInbox/LeiStore.pm | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/LeiMailSync.pm b/lib/PublicInbox/LeiMailSync.pm index ec05404a..558988f3 100644 --- a/lib/PublicInbox/LeiMailSync.pm +++ b/lib/PublicInbox/LeiMailSync.pm @@ -405,13 +405,12 @@ sub imap_oid { $oidbin ? unpack('H*', $oidbin) : undef; } -# FIXME: something with "lei " is causing uncommitted transaction -# warnings, not sure what... +# FIXED? something with "lei " is causing uncommitted transaction +# TODO: remove soon sub DESTROY { my ($self) = @_; my $dbh = delete($self->{dbh}) or return; return if $dbh->{ReadOnly}; - use Carp; undef $dbh; warn "BUG $$ $0 $self {dbh} OPEN ppid=".getppid.' '.Carp::longmess(); } diff --git a/lib/PublicInbox/LeiStore.pm b/lib/PublicInbox/LeiStore.pm index 0b033e3e..5446873e 100644 --- a/lib/PublicInbox/LeiStore.pm +++ b/lib/PublicInbox/LeiStore.pm @@ -195,6 +195,7 @@ sub remove_eml_vmd { # remove just the VMD sub _lms_rw ($) { my ($self) = @_; + my ($eidx, $tl) = eidx_init($self); $self->{lms} //= do { require PublicInbox::LeiMailSync; my $f = "$self->{priv_eidx}->{topdir}/mail_sync.sqlite3"; -- cgit v1.2.3-24-ge0c7