Hi,
We are getting spinlock errors under the following conditions
Background :
We have developed a high performance application using postgres database ( a
3rd party application server).
This application should be scalanble to server 50 requests a second.
Application is written in perl 5.005 using DBI-1.12, DBD-Pg 0.92 and Redhat
linux 6.0
A request consists of one singleton select on a table of 200,000 rows on
it's primary key, a heavy duty cursor which is a 4 table join but which
returns 100 rows from tables containing maximum of 250 rows, a light sql
opening a cursor on a table containing 500 rows, 2 inserts into tables which
don't have primary key.
We are connecting to the database with autoconnect off.
Problem description :
On a light load there are no problems. As we have increased the load on the
application, the requests get piled up. We keep monitoring the requests
getting piled up using ps ax | grep post.
Somewhere when the requests crosses 20(ps returns more than 20 rows)....
suddenly postmaster comes down !! In the server log the following message is
written out.
FATAL: s_lock(4000b011) at spin.c:125, stuck spinlock. Aborting.
FATAL: s_lock(4000b011) at spin.c:125, stuck spinlock. Aborting.
FATAL: s_lock(4000b011) at spin.c:125, stuck spinlock. Aborting.
FATAL: s_lock(4000b011) at spin.c:125, stuck spinlock. Aborting.
FATAL: s_lock(40179f44) at bufmgr.c:490, stuck spinlock. Aborting.
After this postmaster shutdown.
One observation If we try to recreate this in another linux machine...
multiple postmasters run in the linux machine when the number of requests
become more.
I'm also attaching a file containing 'ps' at the instance postmaster
crashed.
Can anybody please help
Thanks and regards,
Murali
Differentiated Software Solutions Pvt. Ltd.,
176, Gr. Floor, 6th Main
2nd Block RT Nagar
Bangalore - 560 032
India
Ph: 91 80 3431470