fix: error storm #3089
No reviewers
Labels
No labels
1week
2weeks
Failed compliance check
IP cameras
NATS
Possible security concern
Review effort 1/5
Review effort 2/5
Review effort 3/5
Review effort 4/5
Review effort 5/5
UI
aardvark
accessibility
amd64
api
arm64
auth
back-end
bgp
blog
bug
build
checkers
ci-cd
cleanup
cnpg
codex
core
dependencies
device-management
documentation
duplicate
dusk
ebpf
enhancement
eta 1d
eta 1hr
eta 3d
eta 3hr
feature
fieldsurvey
github_actions
go
good first issue
help wanted
invalid
javascript
k8s
log-collector
mapper
mtr
needs-triage
netflow
network-sweep
observability
oracle
otel
plug-in
proton
python
question
reddit
redhat
research
rperf
rperf-checker
rust
sdk
security
serviceradar-agent
serviceradar-agent-gateway
serviceradar-web
serviceradar-web-ng
siem
snmp
sysmon
topology
ubiquiti
wasm
wontfix
zen-engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
carverauto/serviceradar!3089
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refs/pull/3089/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Imported from GitHub pull request.
Original GitHub pull request: #3091
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/pull/3091
Original created: 2026-03-27T18:35:44Z
Original updated: 2026-03-27T19:55:10Z
Original head: carverauto/serviceradar:bug/bmp-collector-broken
Original base: staging
Original merged: 2026-03-27T19:55:09Z by @mfreeman451
IMPORTANT: Please sign the Developer Certificate of Origin
Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:
Describe your changes
Issue ticket number and link
Code checklist before requesting a review
Imported GitHub PR review comment.
Original author: @Copilot
Original URL: https://github.com/carverauto/serviceradar/pull/3091#discussion_r3002606231
Original created: 2026-03-27T18:39:53Z
Original path: rust/bmp-collector/src/bmp.rs
Original line: 302
parse_bgp_open_with_fallbackuses the BGP message’s declared length asconsume_lenon the fallback path. If the OPEN is malformed specifically because the declared length is bogus (too small to include an OPEN header, too large, or outside the valid BGP range), the placeholder parse will still fail and you’ll keep erroring instead of recovering. Consider sanitizing/clamping the declared length (e.g., enforce 19..=4096, and <= remaining bytes; and for OPEN placeholder ensure at least the minimum OPEN length) or falling back to consuming the remaining bytes when the declared length is invalid.Imported GitHub PR review comment.
Original author: @Copilot
Original URL: https://github.com/carverauto/serviceradar/pull/3091#discussion_r3002606251
Original created: 2026-03-27T18:39:53Z
Original path: rust/bmp-collector/src/bmp.rs
Original line: 393
In
parse_peer_up_tlvs, encountering an unknownPeerUpTlvTypecurrentlybreaks out of the loop. BMP Peer Up TLVs can legitimately contain unknown/unsupported types, and breaking means you’ll silently drop any following TLVs even if they’re known. Prefer skipping unknown TLVs by consuming4 + info_len(when available) and continuing; also you can avoid the extra allocation by passing the byte slice directly toString::from_utf8_lossyinstead of creatingvalue_byteswithto_vec().Imported GitHub PR review comment.
Original author: @Copilot
Original URL: https://github.com/carverauto/serviceradar/pull/3091#discussion_r3002606279
Original created: 2026-03-27T18:39:53Z
Original path: rust/bmp-collector/src/bmp.rs
Original line: 31
process_bmp_messageattachesframe_hexto the error context, andmain.rsnow logs errors with{err:#}, which will print the full error chain at error level. That means a decode failure will emit up to ~1KB of hex per message and may leak raw routing information into logs. Consider logging only the frame length (and maybe a short prefix/hash) in the error chain, and emitting full hex only underdebug!(or behind an opt-in flag).