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
{{ message }}
Repository navigation
fix(core): prevent duplicate registration after registrar moves - #1038
Extend regression coverage for registrar failures, join receiver lookup, and duplicate resource registration.
Aided by GPT-6.1 Sol
Code: Added explicit move construction and move assignment for registrar. They transfer its state and clear the moved-from creator and predicates to prevent duplicate registration during destruction.
Tests: Added coverage for registrar creator failures and moves, multilayer and fold-join receiver routing, and duplicate resource registrations. The resource tests check that a duplicate throws without constructing another resource and that the original remains accessible.
Auto incremental reviews are disabled on this repository.
Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: ASSERTIVE
Plan: Advanced
Run ID: 047ef70d-0de2-4b52-ac72-47bab91f2e64
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
Trigger review
No actionable comments were generated in the recent review.
Walkthrough
The registrar now defines explicit move operations. Tests cover registrar lifecycle behavior, join routing and port metadata, and duplicate registration of unlimited and serialized resources.
Changes: Registrar lifecycle
Layer / File(s)
Summary
Registrar moves and lifecycle validation phlex/core/registrar.hpp, test/core_misc_test.cpp
Move construction and move assignment transfer registrar state and clear the source creator and predicates. Tests cover creator exceptions, output registration, and error reporting.
Join receiver routing
Layer / File(s)
Summary
Join routing and port validation test/multilayer_join_test.cpp
Tests cover receiver mappings, selector ordering, invalid lookups, and port metadata for multilayer, same-layer, single-input, and fold joins.
Tests verify that duplicate unlimited and serialized resource registrations throw without constructing another instance, and that the original resource remains accessible.
No merge-blocking issue is established in the supplied changes.
Pre-merge checks: 5
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title names the fix (preventing duplicate registration after registrar moves) and the core area it touches, which matches the registrar.hpp move constructor/assignment changes. The tests added cov…
Docstring Coverage
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Title check
Explanation
The title names the fix (preventing duplicate registration after registrar moves) and the core area it touches, which matches the registrar.hpp move constructor/assignment changes. The tests added cover more than moves (creator throwing, join receivers, duplicate resource registration), so the title is narrower than the full changeset but still refers to the main change.
Full details: Docstring Coverage
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 4 files.
Finishing Touches
Generate unit tests (beta)
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: ASSERTIVE
Plan: Advanced
Run ID: 0a47f7e6-0226-4eb9-a2dc-28b118f8be30
Commits
Reviewing files that changed from the base of the PR and between ccba655 and 35c433b.
Files selected for processing: 4
phlex/core/registrar.hpp
test/core_misc_test.cpp
test/multilayer_join_test.cpp
test/resources_test.cpp
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
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
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.
Extend regression coverage for registrar failures, join receiver lookup, and duplicate resource registration.
Aided by GPT-6.1 Sol
registrar. They transfer its state and clear the moved-from creator and predicates to prevent duplicate registration during destruction.