You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Type: bug-fix Difficulty: Medium Recommendation: Adopt
Parent component target states were submitted before child components signaled readiness, creating a race where a parent's persisted state could appear consistent while its children had not yet finished initializing. The fix delays the parent's submit until child readiness is confirmed and keeps component submit serialized under the build semaphore. A regression test test_parent_sink_ordering was added to verify the ordering invariant is maintained.
No Python code to exclude; no feature-gating required
The regression test should be ported alongside the fix — it validates a correctness property that's easy to accidentally regress
The build semaphore scoping change needs careful integration with recoco's existing component lifecycle to avoid introducing new deadlocks
Integration Notes
This is a correctness fix for nested component scenarios. Identify the equivalent submit/readiness coordination in recoco's engine. The upstream fix involves awaiting a child-readiness signal before the parent's submit() call while keeping the build semaphore held. The test case test_parent_sink_ordering from the upstream PR provides a regression harness that should be adapted to recoco's test infrastructure.
Upstream Change Summary
Type: bug-fix
Difficulty: Medium
Recommendation: Adopt
Parent component target states were submitted before child components signaled readiness, creating a race where a parent's persisted state could appear consistent while its children had not yet finished initializing. The fix delays the parent's submit until child readiness is confirmed and keeps component submit serialized under the build semaphore. A regression test
test_parent_sink_orderingwas added to verify the ordering invariant is maintained.Upstream References
Relevant Upstream Files / Areas
rust/cocoindex/src/engine/— component build logic, submit path, build semaphoreRecoco Considerations
crates/recoco-core/src/engine/(component execution, build semaphore management)Integration Notes
This is a correctness fix for nested component scenarios. Identify the equivalent submit/readiness coordination in recoco's engine. The upstream fix involves awaiting a child-readiness signal before the parent's
submit()call while keeping the build semaphore held. The test casetest_parent_sink_orderingfrom the upstream PR provides a regression harness that should be adapted to recoco's test infrastructure.