FreeListRef.checkInvariant's assert fails since v2.096 (dtorfields on by default)
#283
Labels
FreeListRef.checkInvariant's assert fails since v2.096 (dtorfields on by default)
#283
Situation: A client connects to a node. The node crashes (e.g. SEGV) or just abruptly drops the connection.
The following error is triggeredm client side:
(I'm on OSX, so line numbers are botched)
However, what was also triggered was an
InvalidMemoryOperationError. Using LLDB, I could see that theInvalidMemoryOperationErrorwas triggered by anasserttriggering in a destructor, andassertallocating on failure. This is an upstream bug (reported in #248 ) and will be fixed in the next release (v2.097.0).The assertion in question, obviously, shouldn't fail:
vibe-core/source/vibe/internal/freelistref.d
Line 175 in 519d1c0
So after going down that rabbit hole, I was left wondering why on earth the assert fails. Luckily I have most major DMD change memorized so I added a
-revert=dtorfieldsto my config and theassertstopped failing.-preview=dtorfieldshave been enabled by default since v2.096.0 and that matches the timeline of when things started to spuriously fail for us.The text was updated successfully, but these errors were encountered: