fix(core,kernel): subscription-path + buildQuery correctness fixes - #78
Open
EnriqueParodi wants to merge 1 commit into
Open
fix(core,kernel): subscription-path + buildQuery correctness fixes#78EnriqueParodi wants to merge 1 commit into
EnriqueParodi wants to merge 1 commit into
Conversation
EnriqueParodi
force-pushed
the
fix/kernel-subscription-bugs
branch
4 times, most recently
from
August 19, 2026 13:26
96f0ada to
b57b06b
Compare
EnriqueParodi
marked this pull request as ready for review
August 19, 2026 13:31
EnriqueParodi
force-pushed
the
fix/kernel-subscription-bugs
branch
4 times, most recently
from
August 19, 2026 19:05
4253da1 to
19eb568
Compare
EnriqueParodi
force-pushed
the
ci/test-report
branch
from
August 19, 2026 21:21
5085c85 to
933d7eb
Compare
EnriqueParodi
force-pushed
the
fix/kernel-subscription-bugs
branch
from
August 19, 2026 21:21
19eb568 to
1143a58
Compare
EnriqueParodi
force-pushed
the
ci/test-report
branch
from
August 20, 2026 11:26
933d7eb to
9365c89
Compare
EnriqueParodi
force-pushed
the
fix/kernel-subscription-bugs
branch
from
August 20, 2026 11:26
1143a58 to
159154c
Compare
Three crashes in the subscription and query path, found while auditing it: a half-initialised slot during subscribeAll churn, a two-step addSubscriber handshake, and a cached raw ClassType pointer that went stale. The fixes are root-cause, so nothing downstream needs a workaround, and three regression tests cover them.
EnriqueParodi
force-pushed
the
ci/test-report
branch
from
August 20, 2026 21:03
9365c89 to
f512160
Compare
EnriqueParodi
force-pushed
the
fix/kernel-subscription-bugs
branch
from
August 20, 2026 21:03
159154c to
376f8b4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three crashes/dangling-pointer bugs in the subscription + query path, plus a
handful of tightening fixes found while auditing the path.
Backend correctness:
a subscriber being added while another was being removed could see a
half-initialised slot. Iteration now snapshots-and-walks; mutation goes
through a deferred queue. Regression test in test_kernel.
then seedFromExistingObjects" handshake; the combined seedFromExisting
call is the single API. Half-initialised state is no longer reachable.
of one of the SEGV stacks (stale pointer after a type was unregistered);
inlining the lookup is cheaper than the cache it replaced.
s.or.b) used to be permissive-skippedin selectFrom; now they fail loud at config-validation time.
Documentation:
(callbacks may fire after the caller's lifetime; capture state through
a shared_ptr that the callback owns). Pre-existing core convention,
newly written down.
failure mode (was misnamed).
property changes, not events.
Testing:
seed race, and half-empty-bus-address rejection.
This branch is the chain's foundation: every downstream branch (libs/gen,
jsonrpc, web-explorer) is sensitive to kernel subscription correctness.
The fixes here are root-cause; nothing downstream needs a workaround.