• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / sonde / 23676534245
82%

Build:
DEFAULT BRANCH: main
Ran 28 Mar 2026 03:34AM UTC
Jobs 1
Files 76
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Mar 2026 03:25AM UTC coverage: 85.703% (+0.1%) from 85.588%
23676534245

push

github

web-flow
fix: sync global variable map descriptors to SondePlatform (#539)

* fix(bpf): move global constants to stack to work around prevail-rust#1

Prevail's Rust bindings don't correctly type map_val references from
.rodata sections (map_type 0), causing LDDW to produce ctx-typed
pointers instead of shared-typed. This makes any program using
static const data fail verification.

Workaround: use stack-local arrays instead of file-scope static const.
This produces stack-typed pointers which Prevail accepts.

Upstream issue: https://github.com/elazarg/prevail-rust/issues/1

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: sync global variable map descriptors to SondePlatform

prevail-rust promotes .rodata, .data, and .bss ELF sections to
map descriptors (map_type 0) during ELF loading via
\dd_global_variable_maps()\, but these descriptors are only stored in
the ELF loader's internal state — they are never propagated through
\parse_maps_section\ to the platform. As a result,
\SondePlatform::get_map_descriptor()\ returned \None\ for global
variable map FDs, causing the verifier to type \LDDW\-loaded registers
as \ctx\ instead of \shared\, which produced spurious verification
failures on any program referencing \.rodata\ maps.

Fix:

- Add \sync_map_descriptors()\ to \SondePlatform\ that mirrors the full
  set of \EbpfMapDescriptor\s from \RawProgram.info.map_descriptors\
  after ELF loading. \get_map_descriptor()\ checks the mirror first,
  falling back to the inner \LinuxPlatform\.

- Register map_type 0 in \get_map_type()\ as an array map so that
  \LDDW\ references produce \shared\-typed value pointers.

- Use prefix matching for global data section names in
  \xtract_global_section_data()\ (\.rodata.str1.1\, \.data.rel.ro\,
  etc.) to capture all sections Prevail promotes.

- Update gateway-requirements.md (GW-0404 criteria 5-6, GW-0405
  criterion 6) and gateway-design.md (§8.2.1.1) with the workaround
  and prefix matching beh... (continued)

193 of 193 new or added lines in 2 files covered. (100.0%)

23000 of 26837 relevant lines covered (85.7%)

157.68 hits per line

Jobs
ID Job ID Ran Files Coverage
1 23676534245.1 28 Mar 2026 03:34AM UTC 76
85.7
GitHub Action Run
Source Files on build 23676534245
  • Tree
  • List 76
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23676534245
  • f72b3906 on github
  • Prev Build on main (#23670482496)
  • Next Build on main (#23679951601)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc