All Search Head Cluster members are stuck in a "starting..." state.
Note:
If the SHC is running healthy, but only one or two KV store member show "starting", then first attempt to resync the kvstore following these steps from Splunk documentation: Resync stale KV store members
Splunk internal logs were checked and the next was found:
From the SHC Captain:
splunkd.log:
03-25-2021 17:25:12.247 -0400 WARN SHPConfReplicationBookmarkFromKVStore - writeSHCStateToStateStore:
failed to write SHC state to KVstore:03-25-2021 17:24:42.246 -0400 WARN SHPConfReplicationBookmarkFromKVStore - service: failed to read
SHC state from KVstore: read status: -96
mongod.log:
2021-03-23T20:18:17.337Z I REPL [initandlisten] Did not find local replica set configuration
document at startup; NoMatchingDocument: Did not find replica set configuration document in
local.system.replset2021-03-23T20:18:17.338Z I NETWORK [initandlisten] listening via socket bound to 0.0.0.02021-03-23T20:18:17.338Z I NETWORK [initandlisten] waiting for connections on port 8191 ssl2021-03-23T20:18:17.338Z I CONTROL [LogicalSessionCacheReap] Sessions collection is not set up;
waiting until next sessions reap interval: config.system.sessions does not exist
These are indications of a race condition with KV store captaincy change during the previous attempt, which leads to all KV store members being stuck at "starting" status. Based on the logs above, the KV store is out of sync and it could also be experiencing some network issues when attempting to connect to other servers in the KV store port 8191.
Proposed Resolution:
==================
Follow below procedure, often referred to as a "destructive resync" to restore KV Store cluster without Downtime on the SHC.
Proposed Steps
==================
./splunk cmd openssl s_client -connect <FQDN>:8191
/opt/splunk/bin/splunk show shcluster-status --verbose
kvstore-backup folder below does not already exist on this system from a previous restore attempt)cp -R $SPLUNK_DB/kvstore $SPLUNK_DB/kvstore-backupOR:
cp -R /opt/splunk/var/lib/splunk/kvstore /opt/splunk/var/lib/splunk/kvstore-backup
splunk clean kvstore --local
[kvstore] disabled = true
splunk clean kvstore --local
[kvstore] disabled = true
./splunk show shcluster-status --verbose
[kvstore] disabled = false
$SPLUNK_DB/kvstore. For example:mv $SPLUNK_DB/kvstore $SPLUNK_DB/kvstore-backup2 cp -R $SPLUNK_DB/kvstore-backup $SPLUNK_DB/kvstore
$SPLUNK_DB/kvstore/mongo/local.* files left after this step)splunk clean kvstore --cluster
[kvstore] disabled = false
$SPLUNK_DB/kvstore/mongo/local.* files left after this step)splunk clean kvstore --cluster
curl -s -k https://localhost:8089/services/server/info | grep kvStoreStatuscurl -s -k https://localhost:8089/services/server/info | grep kvStoreStatus
Cluster members will resynchronize all data from the first member. Give them some time to do this (could take a bit if your kvstore is quite large).
May require scheduling a maintenance window to perform this operation.
| Revision | Publish Date | Comments |
|---|---|---|
1.0 |
29-Sep-2026
|
Initial Release |