Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

tollgate-clientd: rapid-repay drain when /usage cannot resolve the client identity

Open
#422 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
49/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
go
Domain
payments

Research direction

Start by reading the clientd polling and payment flow, then run tests/cloud-lab/run-clientd-scenarios.sh and inspect the S3 attempts. The proposal does not specify the final threshold, so clarify that before implementing. Done means repeated -1/-1 usage responses after a successful payment stop further payments and surface a clear error.

Written by the indexing model from the issue text.

Description

Found by the clientd scenario battery (tests/cloud-lab/run-clientd-scenarios.sh, S3 attempts).

What happened: when the daemon polls GET :2121/usage from a source IP the router cannot map to a MAC (not in dhcp.leases / ARP view), the endpoint answers -1/-1. clientd interprets that as "no session" and pays again at throttle pace — indefinitely. Observed: ~20 payments of 1 sat in ~95 seconds (allotment climbed to 420000 ms); the wallet was on track to drain completely.

Why it matters: any client-identity mismatch (NAT rebinding, interface change, stale ARP) turns into silent repeated payment. The payments all succeed — only the usage view is blind — so nothing errors out.

Proposal: circuit breaker — after N consecutive -1/-1 polls that immediately follow a successful payment (e.g. 3), stop paying and surface a clear error instead of continuing. Optionally --max-unacked-payments.

Dominant language
Go
Stars
12
Forks
14
Avg merge
1d 6h
Merged PRs (30d)
217

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenTollGate/tollgate-module-basic-go

All issues in OpenTollGate/tollgate-module-basic-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.