Reassigned input channels remain attached to old ports
- Dominant language
- Scala
- Stars
- 314
- Forks
- 187
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 214
Description
### Feature Summary
Re-registering an input channel for a different port replaces the channel-to-port mapping but never removes the channel from the previous port's channel set. Port-aligned control messages can then wait for a channel that no longer belongs to that port.
Before: channel moves to a new port -> old port keeps stale membership -> port alignment can wait forever
After: channel moves to a new port -> old membership is discarded -> both mapping directions agree
Expected behavior:
A channel reassigned to another port should be removed from the previous port's channel set.
Reproduction evidence:
Add two input ports, register one channel to the first port, and register the same channel to the second port.
Observed on `70c21145887920528d7d5540e3fb790b43e8b759`:
```text
mapped_port=1
old_port_contains_channel=True
new_port_contains_channel=True
old_port_channel_count=1
```
Version and commit evidence:
1.3.0-incubating-SNAPSHOT (main)
**Commit Hash (Optional)**
`70c21145887920528d7d5540e3fb790b43e8b759`
### Proposed Solution or Design
After: channel moves to a new port -> old membership is discarded -> both mapping directions agree
Expected behavior:
### Affected Area
Workflow Engine (Amber)
Contributor guide
Assessment
This issue has not been assessed yet.