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. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs