Aggregator misses data due to losing contact with crossbar
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 19
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Description
At site we are now regularly troubled by instances where the Aggregators lose contact with crossbar. Crossbar reports a ping-pong error, and drops the aggregator client; then the aggregator sees the dropped connection and reconnects a few seconds later. During the outage, aggregator doesn't get data on its subscribed feeds, and data is lost.
This is likely to be related to disk i/o causing something to hang in the aggregator and foiling the ping checks.
If a more direct solution cannot be found, I propose making ocs more robust to such dropouts by adding the following:
- Agents may publish their data multiple times. Each bundle they send will be tagged with some identifier (so duplicates can be removed/ignored by the aggregator).
- The Aggregator will monitor identifers on feeds and (a) warn / alert when a bundle is dropeed (b) quietly accept (and not record) any duplicate packets.
The scheme could be made backwards compatible -- only some agents (such as ACU) will need to enable this safety function.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the Aggregator's connection handling with crossbar and investigating whether disk I/O can block ping checks. Reproduce the dropped-connection scenario and review how subscribed-feed data is received during reconnects. Done means the data-loss cause is identified and a decided fix prevents missing bundles or safely detects and handles them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100