Обсуждение: Re: BUG #17072: Assert for clogGroupNext failed due to a race condition in TransactionGroupUpdateXidStatus()

Поиск
Список
Период
Сортировка
24.06.2021 19:00, PG Bug reporting form wrote:
> With some diagnostic output added I've got in the server log:
The diagnostic patch is attached.

I could not find an easy reproduction for the issue, so I can propose
only dirty one, with the special debug patch and the following script:

for i in `seq 100`; do
createdb db$i
done

echo "
CREATE TABLE tst (i INT);
INSERT INTO tst SELECT i FROM generate_series(1,100) i;
DROP TABLE tst;
" >/tmp/action.sql

for n in `seq 100`; do
  echo "iteration $n"
  for i in `seq 100`; do
    ( { for f in `seq 10`; do cat /tmp/action.sql; done } | psql -d db$i
) >psql-$i.log 2>&1 &
  done
  wait
  coredumpctl --no-pager && break
done

(You need to set max_connections = 100 in postgresql.conf.)
This script with the patched server fails for me on iterations 66, 12, 12.

Best regards,
Alexander

Вложения
On Thu, Jun 24, 2021 at 9:45 PM Alexander Lakhin <exclusion@gmail.com> wrote:
>
> 24.06.2021 19:00, PG Bug reporting form wrote:
> > With some diagnostic output added I've got in the server log:
> The diagnostic patch is attached.
>
> I could not find an easy reproduction for the issue, so I can propose
> only dirty one, with the special debug patch and the following script:
>
> for i in `seq 100`; do
> createdb db$i
> done
>
> echo "
> CREATE TABLE tst (i INT);
> INSERT INTO tst SELECT i FROM generate_series(1,100) i;
> DROP TABLE tst;
> " >/tmp/action.sql
>
> for n in `seq 100`; do
>   echo "iteration $n"
>   for i in `seq 100`; do
>     ( { for f in `seq 10`; do cat /tmp/action.sql; done } | psql -d db$i
> ) >psql-$i.log 2>&1 &
>   done
>   wait
>   coredumpctl --no-pager && break
> done
>
> (You need to set max_connections = 100 in postgresql.conf.)
> This script with the patched server fails for me on iterations 66, 12, 12.

I was not able to reproduce the problem with REL_13_3, REL_13_Stable &
Head branch with the script and patch shared. I will check and see if
I can reproduce the problem with the new script that you have shared.

Regards,
Vignesh