FreeBSD 9.0/amd64, PostgreSQL 9.1.2, pgbouncer 1.4.2: segmentation fault - Mailing list pgsql-bugs

From Andrew Alcheyev
Subject FreeBSD 9.0/amd64, PostgreSQL 9.1.2, pgbouncer 1.4.2: segmentation fault
Date
Msg-id 976279052.20120110212229@telenet.ru
Whole thread Raw
Responses Re: FreeBSD 9.0/amd64, PostgreSQL 9.1.2, pgbouncer 1.4.2: segmentation fault  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
List pgsql-bugs
Hello everybody.

Today I have run into some strange situation, maybe a bug.

There is a client with variable
"default_transaction_isolation='serializable'" set in role properties
and it connects to Postgres via pgbouncer.

The problem appears after it executes several ten thousand queries, the
most of them are SELECTs, any other kinds occur very seldom (of
course, the tables used are heavily explored by other clients).

At some point the backend with this client crashes due to segmentation
fault with signal 11.

GDB shows the following:
#0  0x00000000006b3a5b in SHMQueueDelete (queue=0x845b4c498) at shmqueue.c:77
77              prevElem->next = queue->next;
[New Thread 8025cd400 (LWP 100635/<unknown>)]
[New LWP 100709]
(gdb) bt
#0  0x00000000006b3a5b in SHMQueueDelete (queue=0x845b4c498) at shmqueue.c:77
#1  0x00000000006c16ef in SummarizeOldestCommittedSxact () at predicate.c:1467
#2  0x00000000006c197f in RegisterSerializableTransactionInt (snapshot=0xbe7480) at predicate.c:1605
#3  0x00000000006c190a in RegisterSerializableTransaction (snapshot=0xbe7480) at predicate.c:1569
#4  0x00000000007ffcf7 in GetTransactionSnapshot () at snapmgr.c:138
#5  0x00000000006cbaf5 in exec_simple_query (query_string=0x80249e030 "SELECT 'DBD::Pg ping test'") at postgres.c:932
#6  0x00000000006cfcb3 in PostgresMain (argc=2, argv=0x80249a890, username=0x80249a860 "stat") at postgres.c:3926
#7  0x000000000068340d in BackendRun (port=0x802448900) at postmaster.c:3601
#8  0x0000000000682b1a in BackendStartup (port=0x802448900) at postmaster.c:3286
#9  0x000000000067ff5c in ServerLoop () at postmaster.c:1455
#10 0x000000000067f73d in PostmasterMain (argc=3, argv=0x7fffffffdb90) at postmaster.c:1116
#11 0x00000000005fa67a in main (argc=3, argv=0x7fffffffdb90) at main.c:199
(gdb) p prevElem
$1 = (SHM_QUEUE *) 0x0

The other conditions are:
- FreeBSD 9.0-RELEASE / amd64 / ZFS and 12G RAM;
- PostgreSQL 9.1.2 built from ports (with debug symbols);
- pgbouncer 1.4.2 built from ports at the same host;

/etc/sysctl.conf:
kern.ipc.shmall=393216
kern.ipc.shmmax=2147483648
kern.ipc.shm_use_phys=1

/boot/loader.conf:
kern.ipc.semmni=256
kern.ipc.semmns=512
kern.ipc.semmnu=256

postgresql.conf:
shared_buffers = 1GB
temp_buffers = 64MB
max_prepared_transactions = 20
work_mem = 16MB
wal_buffers = 128kB


If one undefs variable "default_transaction_isolation", then the
situation vanishes.

So why does this thing happen? Is there a bug in Postgresql or FreeBSD?

I'd be glad to produce any other meaning information.


With the best regards, Andrew.

pgsql-bugs by date:

Previous
From: r_au@hotmail.com
Date:
Subject: BUG #6390: maximum data limit of Postgres.
Next
From: igor
Date:
Subject: Re: BUG #6377: some notice on the manual page