On Wed, Jul 12, 2006 at 08:43:18AM -0700, Craig A. James wrote: >> Then you killed the wrong backend... >> No queries run in postmaster. They all run in postgres backends. The >> postmaster does very little actual work, other than keeping track of >> everybody else. > > It turns out I was confused by this: ps(1) reports a process called > "postgres", but top(1) reports a process called "postmaster", but they both > have the same pid. I guess postmaster replaces its own name in the process > table when it's executing a query, and it's not really the postmaster even > though top(1) calls it postmaster. > > So "kill -15 <pid>" is NOT killing the process -- to kill the process, I > have to use signal 9. But if I do that, ALL queries in progress are > aborted. I might as well shut down and restart the database, which is an > unacceptable solution for a web site. I don't follow your logic here. If you do "kill -15 <pid>" of the postmaster doing the work, the query should be aborted without taking down the entire cluster. I don't see why you'd need -9 (which is a really bad idea anyhow)... > I'm back to my original question: How do you kill a runaway query without > bringing down the whole database? Is there really no answer to this? Kill it with -15. If you're worried about your CGI scripts, use sudo or some sort of client/server solution. /* Steinar */ -- Homepage: http://www.sesse.net/