Branch: Tag:

2018-05-17

2018-05-17 15:49:53 by Stephen R. van den Berg <srb@cuci.nl>

pgsql: Avoid lock recursion and a deadlock.

1324:    }       final void _releasestatement() { -  Thread.MutexKey lock = closemux->lock(2); +  Thread.MutexKey lock = closemux->lock();    if (_state <= BOUND) {    _state = COMMITTED;    stmtifkey = 0;
1367:    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: