Files
Zoltan PappandClaude Fable 5 21af0b157c debug: capture Go panic output by redirecting stderr to netbird.err (#169)
* debug: capture Go panic output by redirecting stderr to netbird.err

The NE extension crashes with SIGABRT ~1.7s after connect (during network
map application). The Go runtime writes the fatal error message and
goroutine dump to fd 2, which an app extension discards, so the crash
reason is unrecoverable from the .ips report alone (the unwinder cannot
walk Go stacks).

Redirect stderr once per process (before any Go SDK call) into netbird.err
in the app group container, next to logfile.log. The debug bundle
generator already picks up netbird.err from the log directory on iOS
(BundleGenerator.addLogfile), on both the extension IPC path and the
main-app fallback path, so the next crash's panic message lands in the
bundle automatically.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* debug: log crash dump notice before resetting oversized netbird.err

Perform a single stat on netbird.err at startup: surface a non-empty
previous-session file as a possible crash dump first, then log and
reset it only when it exceeds the 5 MB cap. Previously an oversized
file was deleted before the crash-dump notice could fire, silently
discarding the most likely carrier of a panic dump.

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 13:33:00 +02:00
..
2024-02-28 19:22:16 +01:00