~/dnim.dev
▸Writing▸About
All writing

~/writing/tags

#c

2 posts

Systems debugging
May 28, 20266 min

A Dovecot optimization the compiler had been deleting all along

An IMAP THREAD command was panicking inside Dovecot's array code. The crash was real, but the comment above it described an optimization that hadn't run in any -O2 build ever shipped. ATTR_PURE turned it into dead code, and the same annotation decided which line showed up in the backtrace.

#dovecot#c#imap#debugging
Embedded systems
November 30, 20258 min

The furnace controller that deadlocked when the WiFi dropped

An RP2040 furnace controller would freeze at random, always when the WiFi dropped. The culprit was a connectivity probe that opened a TCP connection to decide whether it could open one. A timeout would have hidden it; removing the probe fixed it.

#rp2040#pico#embedded#c

dnim.dev · built and broken by JR

WritingGitHubRSS