about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/LeiMailSync.pm2
-rw-r--r--lib/PublicInbox/OverIdx.pm1
-rw-r--r--lib/PublicInbox/SearchIdx.pm1
-rw-r--r--lib/PublicInbox/V2Writable.pm16
4 files changed, 8 insertions, 12 deletions
diff --git a/lib/PublicInbox/LeiMailSync.pm b/lib/PublicInbox/LeiMailSync.pm
index c6cd1bc5..f7e37ad9 100644
--- a/lib/PublicInbox/LeiMailSync.pm
+++ b/lib/PublicInbox/LeiMailSync.pm
@@ -48,7 +48,7 @@ sub lms_pause {
         my ($self) = @_;
         $self->{fmap} = {};
         my $dbh = delete $self->{dbh};
-        $dbh->do('PRAGMA optimize') if $dbh;
+        eval { $dbh->do('PRAGMA optimize') } if $dbh;
 }
 
 sub create_tables {
diff --git a/lib/PublicInbox/OverIdx.pm b/lib/PublicInbox/OverIdx.pm
index d6d706f7..9fdb26c0 100644
--- a/lib/PublicInbox/OverIdx.pm
+++ b/lib/PublicInbox/OverIdx.pm
@@ -434,6 +434,7 @@ sub commit_lazy {
         my ($self) = @_;
         delete $self->{txn} or return;
         $self->{dbh}->commit;
+        eval { $self->{dbh}->do('PRAGMA optimize') };
 }
 
 sub begin_lazy {
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index a2ed9499..928152ec 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -793,6 +793,7 @@ sub v1_checkpoint ($$;$) {
         ${$sync->{max}} = $self->{batch_bytes};
 
         $self->{mm}->{dbh}->commit;
+        eval { $self->{mm}->{dbh}->do('PRAGMA optimize') };
         my $xdb = $self->{xdb};
         if ($newest && $xdb) {
                 my $cur = $xdb->get_metadata('last_commit');
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index efcc1fc2..3914383c 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -547,11 +547,11 @@ sub checkpoint ($;$) {
         }
         my $shards = $self->{idx_shards};
         if ($shards) {
-                my $mm = $self->{mm};
-                my $dbh = $mm->{dbh} if $mm;
+                my $dbh = $self->{mm}->{dbh} if $self->{mm};
 
                 # SQLite msgmap data is second in importance
                 $dbh->commit if $dbh;
+                eval { $dbh->do('PRAGMA optimize') };
 
                 # SQLite overview is third
                 $self->{oidx}->commit_lazy;
@@ -620,16 +620,10 @@ sub done {
                 my $m = $err ? 'rollback' : 'commit';
                 eval { $mm->{dbh}->$m };
                 $err .= "msgmap $m: $@\n" if $@;
-                eval { $mm->{dbh}->do('PRAGMA optimize') };
-                $err .= "msgmap optimize: $@\n" if $@;
         }
-        if ($self->{oidx} && $self->{oidx}->{dbh}) {
-                if ($err) {
-                        eval { $self->{oidx}->rollback_lazy };
-                        $err .= "overview rollback: $@\n" if $@;
-                }
-                eval { $self->{oidx}->{dbh}->do('PRAGMA optimize') };
-                $err .= "overview optimize: $@\n" if $@;
+        if ($self->{oidx} && $self->{oidx}->{dbh} && $err) {
+                eval { $self->{oidx}->rollback_lazy };
+                $err .= "overview rollback: $@\n" if $@;
         }
 
         my $shards = delete $self->{idx_shards};