FreeBSD 9.0/amd64, PostgreSQL 9.1.2, pgbouncer 1.4.2: segmentation fault

From: Andrew Alcheyev <buddy(at)telenet(dot)ru>
To: pgsql-bugs(at)postgresql(dot)org
Subject: FreeBSD 9.0/amd64, PostgreSQL 9.1.2, pgbouncer 1.4.2: segmentation fault
Date: 2012-01-10 15:22:29
Message-ID: 976279052.20120110212229@telenet.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Heikki Linnakangas 2012-01-10 16:11:04 Re: FreeBSD 9.0/amd64, PostgreSQL 9.1.2, pgbouncer 1.4.2: segmentation fault
Previous Message r_au 2012-01-10 10:55:13 BUG #6390: maximum data limit of Postgres.