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

dangernoodle-io / breadboard / 26202226332
100%

Build:
DEFAULT BRANCH: main
Ran 21 May 2026 02:41AM UTC
Jobs 1
Files 17
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

21 May 2026 02:40AM UTC coverage: 100.0%. Remained the same
26202226332

push

github

web-flow
fix(bb_http): one-shot serialize JSON responses to dodge lwip chunked race (#291)

bb_http_resp_send_json with an object/array root has been emitting via
json_stream_node, which calls bb_http_resp_send_chunk once per field /
comma / brace. A 4 KB JSON tree easily becomes 200+ chunks. Each chunk
routes through tcpip_send_msg_wait_sem, which calls LWIP_ASSERT on the
netconn's op_completed_sem. If the peer closes the socket and the
netconn is freed between two chunks, the next chunk's assert fires and
the device aborts.

Reproduced on bitaxe-650 with the TaipanMiner dashboard tab + SSE log
stream open: backtrace ends in vPortTaskWrapper -> fwrite_r ->
__sfvwrite_r -> httpd_default_send -> lwip_send -> netconn_write_partly
-> tcpip_send_msg_wait_sem (tcpip.c:461) -> abort. TaipanMiner's
/api/pool grew from ~80 to ~200 chunks per response after the per-pool
stats array landed, widening the race window enough to make this a
consistent crash under SSE + 5s polling.

Try one-shot serialize first; fall back to streaming only when
cJSON_PrintUnformatted returns NULL (very large trees, e.g. a fully-
materialized /api/openapi.json — that endpoint already streams via its
own path). For typical /api responses this collapses ~200 lwip_send
calls to one and effectively eliminates the race window.

Resolves B1-223.

1026 of 1026 branches covered (100.0%)

Branch coverage included in aggregate %.

1899 of 1899 relevant lines covered (100.0%)

958.66 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26202226332.1 21 May 2026 02:41AM UTC 17
100.0
GitHub Action Run
Source Files on build 26202226332
  • Tree
  • List 17
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26202226332
  • 1bc02272 on github
  • Prev Build on main (#26201087071)
  • Next Build on main (#26202581853)
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