Skip to content

Commit 3863c88

Browse files
Merge #7244: fix: register shareman recovery interface in ActiveContext
5506d0a fix: register shareman recovery interface in ActiveContext (PastaClaw) Pull request description: ## Summary Add missing `shareman->RegisterRecoveryInterface()` call in `ActiveContext::Start()` and corresponding `UnregisterRecoveryInterface()` in `Stop()`. ## Problem `ActiveContext::Start()` registers recovery interfaces for `cl_signer` and `is_signer` but not `shareman`. Without this, completed sig share sessions are only cleaned up via the 5-second `Cleanup()` interval instead of promptly via `HandleNewRecoveredSig`. Under CI load with frozen mocktime, this manifests as flaky test failures in `feature_llmq_signing.py` and `interface_zmq_dash.py` where InstantSend locks don't arrive within expected timeouts. ## Root Cause The registration was likely dropped during the sig share refactoring that split share management into a separate `shareman` object. The `cl_signer` and `is_signer` registrations survived but `shareman` was missed. ## Fix Two lines: - `shareman->RegisterRecoveryInterface()` in `Start()` (after `is_signer`) - `shareman->UnregisterRecoveryInterface()` in `Stop()` (before `is_signer`, maintaining reverse order) ## Validation - Verified `CSigSharesManager` declares both `RegisterRecoveryInterface()` and `UnregisterRecoveryInterface()` in `src/llmq/signing_shares.h` - Confirmed `shareman` is a `unique_ptr<CSigSharesManager>` in `ActiveContext` - `Stop()` unregisters in reverse order of `Start()` registration (LIFO) Closes #7243 ACKs for top commit: UdjinM6: utACK 5506d0a PastaPastaPasta: utACK 5506d0a Tree-SHA512: e3a6e2e4dd4cddf4447affa6487f596344d855ce957e25013a259eac19a5c8546bb8a2e9be6f356a5f73564f1d1b21789393cadc08d30ca6acc846747debba08
2 parents 2f1d59e + 5506d0a commit 3863c88

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

src/active/context.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ void ActiveContext::Start(CConnman& connman, PeerManager& peerman, int16_t worke
7070
cl_signer->Start();
7171
cl_signer->RegisterRecoveryInterface();
7272
is_signer->RegisterRecoveryInterface();
73+
shareman->RegisterRecoveryInterface();
7374

7475
RegisterValidationInterface(cl_signer.get());
7576
}
@@ -78,6 +79,7 @@ void ActiveContext::Stop()
7879
{
7980
UnregisterValidationInterface(cl_signer.get());
8081

82+
shareman->UnregisterRecoveryInterface();
8183
is_signer->UnregisterRecoveryInterface();
8284
cl_signer->UnregisterRecoveryInterface();
8385
cl_signer->Stop();

0 commit comments

Comments
 (0)