Thread

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

    secret <secret@kearneydev.com> — 1999-03-16T16:36:39Z

    Tom Lane wrote:
    
    > 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
    
        Would strace work instead of truss?  I have strace... Will you be able to
    interpret the strace files & determine the problem do you think?
    
        You've been the only one to respond on this, so I'm a tad worried about
    being left out in the cold on this one... I'd be glad to pay for support if
    there is a place I can do that, heck I pay for support on other software
    products, why not PostgreSQL?
    
        Please let me know.  I'll begin an strace tonight...
    
    David