Re: postmaster dies (was Re: Very disappointing performance)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: postmaster dies (was Re: Very disappointing performance)
Дата
Msg-id 15779.921599310@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: postmaster dies (was Re: Very disappointing performance)  (secret <secret@kearneydev.com>)
Список pgsql-hackers
secret <secret@kearneydev.com> writes:
> ERROR:  postmaster: StreamConnection: accept: Invalid argument
> server_fd = 3, port = 0x816aa70

>     There we go, it crashed this morning...(interestingly it went all of
> yesterday without crashing)... Does this shed some light?

Not much ... it shows pretty much what we expected, ie, nothing
obviously wrong.

What I would suggest doing next is running the postmaster under 'truss'
or some similar utility that can generate a logfile of all the kernel
calls made by the postmaster.  I can't give you any details on how to do
that --- perhaps some other reader can help?  What we're looking for is
anything that might have changed the state of file descriptor 3 shortly
before the crash.

BTW, some tips on debugging this.  Maybe these are obvious, maybe not:

1. This accept call is not associated with normal query processing, but
with receiving connection requests from new clients.  Almost certainly
the bug is not triggered by processing queries but by connection
attempts.  You probably could make the crash happen sooner by starting
and stopping clients in a steady stream (not that you want a crash
sooner on your real system, of course, but for debugging it'd be nice
not to have to wait for long).

2. You might want to build a playpen system that you can stress into
crashing without taking out your live server.  The easiest way to do
that is just to duplicate your installation on another machine, but if
no other machine is handy (or if you suspect a platform-dependent bug,
which I do here) the best bet is to build a debugging version of
Postgres that has nonstandard values for the installation directory
and server's port address.  For example I usually build trial versions
with

./configure --with-pgport=5440 --prefix=/users/postgres/testversion

(plus any options you normally use, of course).  I think it might also
be possible to set these values while running initdb and starting the
test postmaster, without having to recompile; but I don't know the
exact incantations to use to do it that way.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Dan Hrabarchuk
Дата:
Сообщение: ...
Следующее
От: "Nugent, Michael P (SAIC)"
Дата:
Сообщение: