Constantin Teodorescu <teo@flex.ro> writes:
> Till now, everything went ok, but sometimes, in the last few days, I
> found some postgres (<zombie>) processes and when every client is
> logging out, another postgres <zombie> process appears. I had to kill
> -SIGTERM the master, wait for 5 or 6 seconds and then restart it again.
> When 1 postgres <zombie> process is appearing, the current working
> clients can work ahead, no problem at all. But newer connections aren't
> accepted.
This sounds like the postmaster process has gotten hung up somehow ---
it's not responding to incoming connection requests, nor is it noticing
SIGCHLD (signal that one of its child processes exited --- the zombies
are there because the postmaster hasn't done a wait() to reap them).
I've never seen this myself, but it sure sounds like a bug.
Next time you see the condition, would you kill the postmaster with a
signal that will produce a coredump (SIGABRT or SIGSEGV should work)
and extract a backtrace from the core file? That will give us more
to go on. Note it will help if you've compiled the backend with -g ...
and don't throw away the corefile, we may need to ask more questions.
regards, tom lane