[Pgpool-general] statements hanging after transaction w/ replication_strict on
Felix J. Ogris
fjo-lists at ogris.de
Mon Oct 15 13:42:36 UTC 2007
Hi,
we have encountered a strange behaviour with replication_strict set to true.
If we do a SELECT inside a transaction and repeat that statement within the
same connection, but outside a transaction, then pgpool hangs:
postgres=# BEGIN;
BEGIN
postgres=# SELECT * FROM pg_user;
[ ... data follows ... ]
postgres=# COMMIT;
COMMIT
postgres=# SELECT * FROM pg_user;
[ ... hangs forever ... ]
With replication_strict set to false, everything is fine.
Backtrace:
(gdb) bt
#0 0x00000032a2ec0125 in __select_nocancel () from /lib64/tls/libc.so.6
#1 0x0000000000416be9 in pool_process_query (frontend=0x5a0750,
backend=0x59f6d0, connection_reuse=0,
first_ready_for_query_received=Variable "first_ready_for_query_received" is
not available.
)
at pool_process_query.c:309
#2 0x00000000004079c7 in do_child (unix_fd=3, inet_fd=4) at child.c:415
#3 0x0000000000403511 in fork_a_child (unix_fd=3, inet_fd=4, id=254)
at main.c:717
#4 0x0000000000404f89 in main (argc=Variable "argc" is not available.
) at main.c:363
Our pgpool.conf (pgpool-II-1.2.1, CentOS 4.5, Linux 2.6.9):
listen_addresses = '*'
port = 5432
socket_dir = '/tmp'
pcp_port = 9898
pcp_socket_dir = '/tmp'
pcp_timeout = 10
num_init_children = 256
child_life_time = 300
connection_life_time = 300
child_max_connection = 10
logdir = '/var/run'
print_timestamp = true
connection_cache = true
health_check_timeout = 20
health_check_period = 30
health_check_user = pgpool
ignore_leading_white_space = true
log_statement = false
log_hostname = false
log_connections = false
enable_pool_hba = false
replication_mode = true
replication_strict = false
replication_timeout = 60000
load_balance_mode = true
replication_stop_on_mismatch = false
insert_lock = true
backend_hostname0 = '10.0.0.21'
backend_port0 = 5432
backend_weight0 = 1
backend_hostname1 = '10.0.0.22'
backend_port1 = 5432
backend_weight1 = 1
backend_hostname2 = '10.0.0.23'
backend_port2 = 5432
backend_weight2 = 1
Any ideas?
TIA
Felix
More information about the Pgpool-general
mailing list