[BUG] Deadlock detected when update with multiple clients

Поиск
Список
Период
Сортировка
От tanghy.fnst@fujitsu.com
Тема [BUG] Deadlock detected when update with multiple clients
Дата
Msg-id OS0PR01MB611318903C12DB5B08562B95FBDA9@OS0PR01MB6113.jpnprd01.prod.outlook.com
обсуждение исходный текст
Ответы Re: [BUG] Deadlock detected when update with multiple clients  (hubert depesz lubaczewski <depesz@depesz.com>)
Список pgsql-bugs
Hi

I met a deadlock when I update amounts of text-type data with multiple clients.
And there's no deadlock if I set autovacuum to off. Error messages about the
deadlock are as follows.

2021-09-14 09:18:40.392 CST [428452] ERROR:  deadlock detected
2021-09-14 09:18:40.392 CST [428452] DETAIL:  Process 428452 waits for ShareLock on transaction 1725; blocked by
process428455. 
        Process 428455 waits for ShareLock on transaction 1723; blocked by process 428452.
        Process 428452: UPDATE tbl SET body = upper(body);
        Process 428455: UPDATE tbl SET body = upper(body);
2021-09-14 09:18:40.392 CST [428452] HINT:  See server log for query details.
2021-09-14 09:18:40.392 CST [428452] CONTEXT:  while rechecking updated tuple (0,1) in relation "tbl"
2021-09-14 09:18:40.392 CST [428452] STATEMENT:  UPDATE tbl SET body = upper(body);

I'm not sure if I used it inappropriately, or it's unexpected. Could someone
take a look at this problem?

Attach a script to reproduce it. It took about 2~3 minutes to run it on my
machine.

FYI, I found this problem on HEAD and I could reproduce at PG14 and PG13. I
didn't try other versions.

Regards
Tang

Вложения

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Euler Taveira"
Дата:
Сообщение: Re: BUG #17185: PostgreSQL performance GNU vs LLVM
Следующее
От: hubert depesz lubaczewski
Дата:
Сообщение: Re: [BUG] Deadlock detected when update with multiple clients