From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id C1DAB1F5AE for ; Wed, 9 Jun 2021 10:03:06 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] lei/store: do eidx_init before creating R/W lms dbh Date: Wed, 9 Jun 2021 10:03:05 +0000 Message-Id: <20210609100305.59917-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: 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(-) 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";