The function of lock file named ".s.PGSQL.<port>.lock" on Linux?
am 03.08.2010 16:39:29 von xsun
When the psql server is started under Linux platform, in /tmp directory
there is a lock files named ".s.PGSQL..lock". So I want to know what
is the function of this lock file? And does the server work well without
this lock file?
Additionally, I know that the file ".s.PGSQL." is used as the unix
domain socket file. But the file ".s.PGSQL..lock" makes me still
pazzled. Could you explain that? Thanks.
Best wishes.
--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Re: The function of lock file named ".s.PGSQL.<port>.lock" on Linux?
am 05.08.2010 18:41:14 von Tom Lane
"xsun" writes:
> When the psql server is started under Linux platform, in /tmp directory
> there is a lock files named ".s.PGSQL..lock". So I want to know what
> is the function of this lock file?
It prevents multiple postmasters from trying to use the same socket file.
> And does the server work well without
> this lock file?
No. (Well, it will run, but you have no protection against accidentally
starting another postmaster on the same port number.)
> Additionally, I know that the file ".s.PGSQL." is used as the unix
> domain socket file. But the file ".s.PGSQL..lock" makes me still
> pazzled. Could you explain that? Thanks.
We can't portably lock the socket file itself, so we make a separate
ordinary file for locking purposes.
regards, tom lane
--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Re: The function of lock file named ".s.PGSQL.<port>.lock"on Linux?
am 11.08.2010 02:51:11 von Greg Smith
Tom Lane wrote:
> We can't portably lock the socket file itself, so we make a separate
> ordinary file for locking purposes.
>
It looks to me like the fact that the .lock file is created is only
documented in src/backend/utils/init/miscinit.c , and even there the
reason why (what you wrote above) isn't mentioned. Seems like noting
this file is created in the unix_socket_directory entry of the docs, and
the rationale for why in the source code, would make a useful
improvement. Anybody want to write a little documentation patch?
--
Greg Smith 2ndQuadrant US Baltimore, MD
PostgreSQL Training, Services and Support
greg@2ndQuadrant.com www.2ndQuadrant.us
--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Re: The function of lock file named ".s.PGSQL.<port>.lock" on Linux?
am 11.08.2010 03:09:55 von Tom Lane
Greg Smith writes:
> Tom Lane wrote:
>> We can't portably lock the socket file itself, so we make a separate
>> ordinary file for locking purposes.
> It looks to me like the fact that the .lock file is created is only
> documented in src/backend/utils/init/miscinit.c , and even there the
> reason why (what you wrote above) isn't mentioned. Seems like noting
> this file is created in the unix_socket_directory entry of the docs, and
> the rationale for why in the source code, would make a useful
> improvement. Anybody want to write a little documentation patch?
FWIW, the discussion about that was here:
http://archives.postgresql.org/pgsql-hackers/2000-11/msg0130 6.php
and the subsequent commit was
2000-11-29 15:59 tgl
* configure, configure.in, src/backend/libpq/pqcomm.c,
src/backend/postmaster/postmaster.c, src/backend/tcop/postgres.c,
src/backend/utils/init/miscinit.c, src/backend/utils/misc/guc.c,
src/bin/pg_ctl/pg_ctl.sh, src/include/config.h.in,
src/include/miscadmin.h: Get rid of not-very-portable
fcntl(F_SETLK) mechanism for locking the Unix socket file, in favor
of having an ordinary lockfile beside the socket file. Clean up a
few robustness problems in the lockfile code. If postmaster is
going to reject a connection request based on database state, it
will now tell you so before authentication exchange not after. (Of
course, a failure after is still possible if conditions change
meanwhile, but this makes life easier for a yet-to-be-written
pg_ping utility.)
(The pgsql-committers messages were pretty useless back then, so I won't
point you to that archive.)
regards, tom lane
--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin