Clock steps shift relayed signal ages silently; surface them as a GridNetwork condition
Maintainers usually reply within 1 day
Assessment
This issue has not been assessed yet.
Description
Summary
A clock step on an operator or a gateway shifts the ages of relayed signals until the next poll, and nothing reports it. Relayed rows carry an absolute stamp fixed at poll time while local rows derive their stamp from a monotonic instant at render. An operator step forward ages every relayed row by the step, so remote sites can read unmeasured until each peer is polled again. A step backward makes rebase_age fall back to fresh, so a dead peer keeps reading fresh until peer_ttl expires it. A gateway step backward drops every newer sample as older than the held heads and leaves it blind for the size of the step. The only trace today is sites going unmeasured or reading fresh.
Follows #336, which adds grid_signals_ingest_dropped_total{reason="skew"} at the gateway.
Required changes
- Hold age plus an
Instantfor relayed rows and derive the stamp at render, as the local path does, so a step on the operator's wall clock does not persist into stored stamps. - Reject a relayed age that is negative or past
MAX_RELAY_AGE_MSrather than refreshing it. - Surface a suspected step as a
GridNetworkcondition, set when the relay's age bookkeeping goes negative or when the gateway's skew-drop counter rises, and cleared on the next clean poll. A condition, not a phase change: routing already degrades safely, and the operator should say why.
Rationale
Every hop carries age, not a clock value, so skew between sites never matters. A step on one clock does, and it is silent.
Acceptance criteria
- A relayed row's rendered stamp is unaffected by an operator wall-clock step between poll and render, with a test that steps the clock.
- A negative or implausible relay age is dropped and counted, with a test.
- The condition appears on the
GridNetworkwithin one poll of a step and clears within one poll of a clean cycle, with a test.
- Dominant language
- Rust
- Stars
- 10
- Forks
- 24
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 136
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing 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.
More from praxis-proxy/grid
-
priority/high triage/accepted
Difficulty 1/5 Under an hour Newbie friendliness 76/100
praxis-proxy/grid#532 ·
Maintainers usually reply within 1 day
-
ci(gateway): add the gateway to the fips jobPossibly taken @evacchi claimed this 2 days ago. Openarea/security priority/medium triage/accepted
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
praxis-proxy/grid#504 · 1 comment ·
Maintainers usually reply within 1 day
-
operator: follow-ups from the review of #494Possibly taken @pazqo claimed this 2 days ago. Openpriority/medium triage/accepted
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
praxis-proxy/grid#496 · 1 assignee ·
Maintainers usually reply within 1 day
-
swim: purge only the changed grid's state when its signed binding changesPossibly taken @pazqo claimed this today. Openarea/core priority/medium triage/accepted
Difficulty 4/5 3-5 days Newbie friendliness 38/100
praxis-proxy/grid#541 ·
Maintainers usually reply within 1 day
-
Make GridNetwork sovereignty validation consistent across legacy fieldsPossibly taken @liavweiss claimed this 1 day ago. Openpriority/high triage/accepted
Difficulty 4/5 3-5 days Newbie friendliness 35/100
praxis-proxy/grid#535 · 1 comment ·
Maintainers usually reply within 1 day
All issues in praxis-proxy/grid
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
`nsh-core` fails to compile when taffy's default `calc` feature is enabled elsewhere in the graphOpen
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
longbridge/nsh#966 ·
Maintainers usually reply within 1 day
-
Windows docs: pin a tested ConPTY version for Kitty graphics; 1.25.260930003 corrupts large uploadsOpen
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
raphamorim/rio#2021 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
hydro-project/infinity#187 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
near/near-sdk-rs#1676 ·
Maintainers usually reply within 2 days