Reassigned input channels remain in old port alignment sets
- Dominant language
- Scala
- Stars
- 314
- Forks
- 187
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 214
Description
### Feature Summary
InputManager updates its channel-to-port mapping when an existing channel is registered on a new input port, but it never removes that channel from the old port's reverse channel set. Port-aligned control messages use those reverse sets, so an old port can continue waiting for a channel that has been reassigned.
Before: the forward mapping points to port 1 while both port 0 and port 1 contain the channel.
After: the channel belongs only to port 1, and the forward and reverse mappings agree.
Reproduction evidence:
1. Add input ports 0 and 1 to an InputManager.
2. Register one data channel on port 0.
3. Register the same channel on port 1.
4. Observe that get_port_id reports port 1.
5. Observe that get_channels on both ports still contains the channel.
Version and commit evidence:
1.3.0-incubating-SNAPSHOT (main)
**Commit Hash (Optional)**
70c21145887920528d7d5540e3fb790b43e8b759
## Relevant log output
forward_port=1
port_a_channels=1
port_b_channels=1
present_in_both=True
### Proposed Solution or Design
After: the channel belongs only to port 1, and the forward and reverse mappings agree.
### Affected Area
Workflow Engine (Amber)
Contributor guide
Assessment
This issue has not been assessed yet.