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

dangernoodle-io / breadboard / 30518057528
97%

Build:
DEFAULT BRANCH: main
Ran 30 Jul 2026 05:58AM UTC
Jobs 1
Files 208
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

30 Jul 2026 05:56AM UTC coverage: 96.596% (+0.006%) from 96.59%
30518057528

push

github

web-flow
fix: migrate POST /api/reboot, PATCH /api/wifi, factory-reset off bb_http_json_obj_stream_t (#1148)

Three httpd task handlers built their JSON response with
bb_http_json_obj_stream_t, whose _buf field alone is 1024 bytes
(BB_HTTP_JSON_OBJ_BUF_SIZE), for a 1048-byte struct. Combined with the
request-parse frame (bb_data_apply's parse_scratch), this statically
overflows CONFIG_BB_HTTP_TASK_STACK_SIZE's default 6144-byte budget:
wifi_patch_handler's measured chain was 6576 bytes, reboot_handler's a
lower but still-crashing 5440 (observed on real hardware). Corruption of
the task's newlib _reent/pthread-TLS block then faults later inside
pthread_getspecific, in the send path rather than the handler that
actually caused it.

Migrates reboot_handler, wifi_patch_handler, and factory_reset_handler's
response emission (both its 202 success body and its two-path error
helpers) onto bb_http_serialize_stream() + a bb_serialize_desc_t, the
same low-stack-footprint pattern already used by the GET diag/wifi/ota
routes. The single-field {"error":"<msg>"} shape shared by all three
files' send_400/send_500/send_501/send_412 helpers is factored into one
new bb_http_serialize_send_error() (components/bb_http_server) rather
than re-hand-rolled three times, per the Consolidation convention.

Measured on an esp32 smoke build (xtensa-esp32-elf-readelf
--debug-dump=frames, DW_CFA_def_cfa_offset):
  reboot_handler:      4528 -> 3504 bytes
  wifi_patch_handler:  5664 -> 3600 bytes
  factory_reset_handler: 3344 bytes (not in the smoke build config
    pre-migration either, so no baseline to diff against)
storage_delete_handler (shares the migrated error helpers, but its own
response body was already on bb_http_serialize_stream before this PR)
is unchanged at 5552 bytes, confirming the shared-helper edit didn't
regress it.

No JSON shape, field order, or status code changes -- verified
byte-for-byte against the deleted bb_http_json_obj_stream_t call sites.
body[]/parse_scratch[]... (continued)

7973 of 8576 branches covered (92.97%)

Branch coverage included in aggregate %.

8 of 8 new or added lines in 1 file covered. (100.0%)

13540 of 13695 relevant lines covered (98.87%)

2655.92 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30518057528.1 30 Jul 2026 05:58AM UTC 208
96.6
GitHub Action Run
Source Files on build 30518057528
  • Tree
  • List 208
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30518057528
  • acc8e13d on github
  • Prev Build on main (#30515939329)
  • Next Build on main (#30520226531)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc