Subj : Re: binkd crashes when reloading after file change detection
To : mark lewis
From : Dan Cross
Date : Fri Jan 21 2022 12:57 pm
On 20 Jan 2022 at 09:12a, mark lewis pondered and said...
ml> earlier i had remove the "-C" to test the automatic reload that the FAQ
ml> seems to indicate is done with binkd v1.xx... i've just put it back and
ml> run a short but similar test to your's using touch on my main
ml> configuration file as well as each of the various included files... in
ml> every case, binkd did detect the timestamp updates and said it reloaded
ml> the configure for both server and client instances... there was no
ml> crash...
ml>
ml> ok, so that works... let's try changing some content...
[snip]
ml> that'll add one byte and remove some data when binkd processes the
ml> contents... damn! again no crash... remove the content so that domain
ml> line is valid again and no crash... WTAF is going on??
Based on your experiments, I imagine what's going on is
a serialization failure when accessing heap-allocated
memory in a multi-threaded context. You're not seeing
crashes because the crashes are non-deterministic.
These sort of annoying "heisenbugs" are the worst. But
fortunately there are tools that can help out. Perhaps
compile with something like TSAN enabled and try running
that way?