To show up, it needs:
* duplicate PVs (two NIFs or adding localhost)
* a reverse DNS lookup that is slow, but not too slow
("best" configuration for the virtual box on my laptop: Google DNS over wireless)
* a short lived client (caget in a shell loop)
My impression: when the DNS answer comes in while the client is shutting down, there is a chance that a callback is executed in a callback object that is deleted (segfaults), or that the DNS call inside a destructed ipAddrToAsciiEngine returns, and taking the guard mutex (when leaving the unguarded section around the DNS call) throws because the mutex has been deleted.
FWIW...
To show up, it needs:
* duplicate PVs (two NIFs or adding localhost)
* a reverse DNS lookup that is slow, but not too slow
("best" configuration for the virtual box on my laptop: Google DNS over wireless)
* a short lived client (caget in a shell loop)
My impression: when the DNS answer comes in while the client is shutting down, there is a chance that a callback is executed in a callback object that is deleted (segfaults), or that the DNS call inside a destructed ipAddrToAsciiEngine returns, and taking the guard mutex (when leaving the unguarded section around the DNS call) throws because the mutex has been deleted.