On 03/08/2018 02:14 AM, Bauss wrote:
By any chance, are you ever storing a Connection or a ResultRange
anywhere? I don't mean as a function-local variable or a a function
parameter: I mean like as a class/struct member or as a global? (Well,
not that D really has true globals, but a "global" at the module-level.)
If you keep around a Connection (or a ResultRange, which has a
reference to its own Connection) past the end of the vibe.d task that
was using it, then that can definitely cause this kind of problem.
(AIUI, vibe.d wants to make the connections you obtain from a pool be
Scoped. That would help prevent users from accidentally storing
something they shouldn't and running into this issue.)
Yeah I stores the result range which I assume was the issue, but I'm
returning results as arrays now so it probably solved it.
That behavior should be documented though, I don't recall reading that
anywhere and it's kind of a gotcha
Agreed. Please file a ticket for this so I don't forget.