Re: Possible bug in vacuum redo - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: Possible bug in vacuum redo
Date
Msg-id 3C265996.9050909@tm.ee
Whole thread Raw
In response to Re: Possible bug in vacuum redo  ("Hiroshi Inoue" <Inoue@tpf.co.jp>)
Responses Re: Possible bug in vacuum redo  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
FWIW, I got the following deadlock-like situation by simply running 
pgbench :
 968 ?        S      0:00 /usr/bin/postmaster -D /var/lib/pgsql/data
13245 pts/1    S      0:00 su - postsql
31671 pts/1    S      0:00 bin/postmaster
31672 pts/1    S      0:00 postgres: stats buffer process
31674 pts/1    S      0:00 postgres: stats collector process
32606 pts/1    S      0:02 pgbench -p 7204 -t 128 -c 32 postsql
32613 pts/1    S      0:01 postgres: postsql postsql [local] UPDATE
32615 pts/1    S      0:00 postgres: postsql postsql [local] UPDATE
32616 pts/1    S      0:01 postgres: postsql postsql [local] UPDATE
32617 pts/1    S      0:00 postgres: postsql postsql [local] UPDATE
32618 pts/1    S      0:00 postgres: postsql postsql [local] UPDATE
32623 pts/1    S      0:01 postgres: postsql postsql [local] UPDATE
32624 pts/1    S      0:01 postgres: postsql postsql [local] idle in 
transaction
32628 pts/1    S      0:01 postgres: postsql postsql [local] UPDATE
32633 pts/1    S      0:00 postgres: postsql postsql [local] idle
32634 pts/1    S      0:00 postgres: postsql postsql [local] UPDATE
32635 pts/1    S      0:00 postgres: postsql postsql [local] COMMIT
32636 pts/1    S      0:01 postgres: postsql postsql [local] UPDATE waiting
32637 pts/1    S      0:00 postgres: postsql postsql [local] UPDATE
32638 pts/1    S      0:00 postgres: postsql postsql [local] UPDATE
32639 pts/1    S      0:00 postgres: postsql postsql [local] UPDATE
32640 pts/1    S      0:00 postgres: checkpoint subprocess
32692 pts/2    S      0:00 su - postsql
32752 pts/2    S      0:00 grep post

It is probably some bug in pgbench, but could also be something more 
serious.

I was running pgbench using modified (to use vacuum full between runs) 
Tatsuos
bench script on a uniprocessor Athlon 850.:

[postsql@taru bench]$ cat bench.sh
#! /bin/sh
for i in 1 2 3 4 5 6 7 8   do
#    pg_ctl stop
#    pg_ctl -w -o '-c "wal_sync_method=fdatasync" -S' start
#    pg_ctl -w start   sh mpgbench| tee bench.res.$i |   sh extract.sh > bench.data.$i
done
[postsql@taru bench]$ cat mpgbench
#! /bin/sh
DB=postsql
PORT=7204

#pgbench -p $PORT -i -s 128 $DB
#pgbench -p $PORT -i -s 10 $DB
#pgbench -p $PORT -i -s 1 $DB

for i in 1 2 4 8 16 32 64 128
do
#        t=$(echo "scale=0; 512/$i" | bc -l)       t=$(echo "scale=0; 4096/$i" | bc -l)       echo $i concurrent
users...1>&2       echo $t transactions each... 1>&2       pgbench -p $PORT -t $t -c $i $DB       psql -p $PORT -c
'vacuumfull' $DB       psql -p $PORT -c 'checkpoint' $DB       echo "===== sync ======" 1>&2       sync;sync;sync;sleep
10      echo "===== sync done ======" 1>&2
 
done


[postsql@taru bench]$ cat extract.sh
#! /bin/sh
sed -n -e '/^number of clients.*'/p \   -e '/.*excluding connections establishing.*'/p |
sed -e 's/number of clients: //' \   -e 's/^tps = //' \   -e 's/(excluding connections establishing)//'|
while read i
do   echo -n "$i "   read j   echo $j
done

-------------------
Hannu




pgsql-hackers by date:

Previous
From: Hiroshi Inoue
Date:
Subject: Re: Possible bug in vacuum redo
Next
From: Tom Lane
Date:
Subject: Re: Possible bug in vacuum redo