about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/V2Writable.pm16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index a3938b56..e9a43000 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -65,13 +65,21 @@ sub nproc_shards ($) {
 
 sub count_shards ($) {
         my ($self) = @_;
-        $self->{ibx} ? do {
+        if (my $ibx = $self->{ibx}) {
                 # always load existing shards in case core count changes:
                 # Also, shard count may change while -watch is running
-                my $srch = $self->{ibx}->search or return 0;
-                delete $self->{ibx}->{search};
+                my $srch = $ibx->search or return 0;
+                delete $ibx->{search};
                 $srch->{nshard} // 0
-        } : $self->{nshard}; # self->{nshard} is for ExtSearchIdx
+        } else { # ExtSearchIdx
+                $self->{nshard} // do {
+                        if ($self->xdb_sharded) {
+                                $self->{nshard} // die 'BUG: {nshard} unset';
+                        } else {
+                                0;
+                        }
+                }
+        }
 }
 
 sub new {