Skip to content
This repository was archived by the owner on Jun 16, 2026. It is now read-only.
This repository was archived by the owner on Jun 16, 2026. It is now read-only.

[upstream-sync] fix(engine): submit parent target states after child readiness (upstream #2014) #177

Description

@github-actions

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_ordering was added to verify the ordering invariant is maintained.

Upstream References

Relevant Upstream Files / Areas

  • rust/cocoindex/src/engine/ — component build logic, submit path, build semaphore

Recoco Considerations

  • Affected files: crates/recoco-core/src/engine/ (component execution, build semaphore management)
  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    claudeCreated or actioned by Claude AIupstream-syncIssues for syncing updates with our upstream (cocoindex-io/cocoindex)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions