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.

Reply via email to