Skip to content
Snippets Groups Projects
Commit eda1bd2b authored by Stephen R. van den Berg's avatar Stephen R. van den Berg
Browse files

pgsql: Avoid lock recursion and a deadlock.

parent 9271a86a
Branches
Tags
No related merge requests found
...@@ -1324,7 +1324,7 @@ class sql_result { ...@@ -1324,7 +1324,7 @@ class sql_result {
} }
final void _releasestatement() { final void _releasestatement() {
Thread.MutexKey lock = closemux->lock(2); Thread.MutexKey lock = closemux->lock();
if (_state <= BOUND) { if (_state <= BOUND) {
_state = COMMITTED; _state = COMMITTED;
stmtifkey = 0; stmtifkey = 0;
...@@ -1367,7 +1367,8 @@ class sql_result { ...@@ -1367,7 +1367,8 @@ class sql_result {
switch (_state) { switch (_state) {
case PARSING: case PARSING:
case BOUND: case BOUND:
_releasestatement(); _state = COMMITTED; // Avoid _releasestatement() to prevent
stmtifkey = 0; // lock recursion and lock inversion deadlock
} }
switch (_state) { switch (_state) {
case PORTALINIT: case PORTALINIT:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment