Обсуждение: Problems with starting Postgres

Поиск
Список
Период
Сортировка

Problems with starting Postgres

От
Uro¹ Gruber
Дата:
Hi!

I started postgres with -i switch, but when i kill the proces i can't
start it anymore on the same port. I tried this five times and i can
start it now on 5 ports because i have to use everytime a new port.

I look in my /tmp and try to delete postgres files, but still don't
works. There is no proces running. I checked with netstat -a and there
is no open sockets.

This is an error

FATAL: StreamServerPort: bind() failed: Address already in use
        Is another postmaster already running on that port?
        If not, remove socket node (/tmp/.s.PGSQL.5432) and retry.
/usr/local/pgsql/bin/./postmaster: cannot create UNIX stream port

Any clues or help


Version of SQL is 7.0.3 and OS Linux Slack 7.1
Kernel 2.2.16
--
Uroš Gruber



Re: Problems with starting Postgres

От
"Dominic J. Eidson"
Дата:
On Sun, 10 Dec 2000, Uro� Gruber wrote:

> I started postgres with -i switch, but when i kill the proces i can't
> start it anymore on the same port. I tried this five times and i can
> start it now on 5 ports because i have to use everytime a new port.
>
> I look in my /tmp and try to delete postgres files, but still don't
> works. There is no proces running. I checked with netstat -a and there
> is no open sockets.

Wait for 2 to 4 minutes, and try again. (Don't we set SO_REUSEADDR?)


--
Dominic J. Eidson
                                        "Baruk Khazad! Khazad ai-menu!" - Gimli
-------------------------------------------------------------------------------
http://www.the-infinite.org/              http://www.the-infinite.org/~dominic/


Re: Problems with starting Postgres

От
Tom Lane
Дата:
Uro� Gruber <uros@sir-mag.com> writes:
> I started postgres with -i switch, but when i kill the proces i can't
> start it anymore on the same port. I tried this five times and i can
> start it now on 5 ports because i have to use everytime a new port.

> FATAL: StreamServerPort: bind() failed: Address already in use
>         Is another postmaster already running on that port?
>         If not, remove socket node (/tmp/.s.PGSQL.5432) and retry.
> /usr/local/pgsql/bin/./postmaster: cannot create UNIX stream port

How are you killing the postmaster?

A plain kill (SIGTERM) should remove the socket file on its way out.
The only thing that wouldn't is kill -9 ... if you're doing it that
way, don't.

            regards, tom lane

Re: Problems with starting Postgres

От
Alessio Bragadini
Дата:
Tom Lane wrote:

> A plain kill (SIGTERM) should remove the socket file on its way out.
> The only thing that wouldn't is kill -9 ... if you're doing it that
> way, don't.

The problem is an unexpected crash/reboot of the machine (which
shouldn't happen, but...) that leaves socket files in /tmp and requires
manual tweaking after the machine is up again. Maybe it's our
installation, but we need a more reliable pg_ctl

--
Alessio F. Bragadini        alessio@albourne.com
APL Financial Services        http://village.albourne.com
Nicosia, Cyprus             phone: +357-2-755750

"It is more complicated than you think"
        -- The Eighth Networking Truth from RFC 1925

Re: Problems with starting Postgres

От
Tom Lane
Дата:
Alessio Bragadini <alessio@albourne.com> writes:
> The problem is an unexpected crash/reboot of the machine (which
> shouldn't happen, but...) that leaves socket files in /tmp and requires
> manual tweaking after the machine is up again. Maybe it's our
> installation, but we need a more reliable pg_ctl

A lot of people (including me) set up their boot-time script to
unconditionally delete /tmp/.s.PGSQL.5432 before launching the new
postmaster.  Of course this is pretty dangerous if you are in the
habit of using the same script for hand restarts, since you might
zap a socket belonging to a live postmaster.

With any luck the problem will go away in 7.1 --- it has what I hope
will prove to be a more robust scheme for deleting old socket files
than the current one.

            regards, tom lane