diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod index 81d1df436cdea654d68decadbd5a3dbb12a6994a..e8365393b89c80043be184ecd09a32483e3db016 100644 --- a/lib/modules/Sql.pmod/pgsql_util.pmod +++ b/lib/modules/Sql.pmod/pgsql_util.pmod @@ -1324,7 +1324,7 @@ class sql_result { } final void _releasestatement() { - Thread.MutexKey lock = closemux->lock(2); + Thread.MutexKey lock = closemux->lock(); if (_state <= BOUND) { _state = COMMITTED; stmtifkey = 0; @@ -1367,7 +1367,8 @@ class sql_result { switch (_state) { case PARSING: case BOUND: - _releasestatement(); + _state = COMMITTED; // Avoid _releasestatement() to prevent + stmtifkey = 0; // lock recursion and lock inversion deadlock } switch (_state) { case PORTALINIT: