Re: BUG #17591: elog(ERROR) cause SharedSnapshotLock deadlock
От | Zhang Mingli |
---|---|
Тема | Re: BUG #17591: elog(ERROR) cause SharedSnapshotLock deadlock |
Дата | |
Msg-id | 46726dc2-ca8c-426e-bb4e-cfa47ce48d9e@Spark обсуждение исходный текст |
Ответ на | BUG #17591: elog(ERROR) cause SharedSnapshotLock deadlock (PG Bug reporting form <noreply@postgresql.org>) |
Список | pgsql-bugs |
Hi,
Didn’t see any bugs here, it report an error and the transaction will end and release all resources.
Didn’t see any bugs here, it report an error and the transaction will end and release all resources.
Regards,
Zhang Mingli
On Aug 22, 2022, 14:58 +0800, PG Bug reporting form <noreply@postgresql.org>, wrote:
The following bug has been logged on the website:
Bug reference: 17591
Logged by: ma liangzhu
Email address: ma100@hotmail.com
PostgreSQL version: 14.5
Operating system: centos7
Description:
in lock.c, we can see code Release lock before return , e.g.
```c
996: LockAcquireExtended
{
LWLockAcquire(partitionLock, LW_EXCLUSIVE);
proclock = SetupLockInTable( );
if (!proclock)
{
LWLockRelease(partitionLock); --- Release lock before return
ereport(ERROR,)
}
}
```
bug we can see some code doesn't release the lock. Does it may cause
deadlock?
```c
LockRelease()
{
LWLockAcquire(partitionLock, LW_EXCLUSIVE);
lock = locallock->lock;
if (!lock)
{
lock = (LOCK *) hash_search_with_hash_value( );
if (!lock)
2126: elog(ERROR, "failed to re-find shared lock object"); -- exit
without release
}
```
В списке pgsql-bugs по дате отправления: