FATAL: bogus data in lock file "postmaster.pid": ""

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: FATAL: bogus data in lock file "postmaster.pid": ""
Date: 2012-01-05 13:18:48
Message-ID: 4F05A338.7000409@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

My laptop ran out of battery and turned itself off while I was just
starting up postmaster. After plugging in the charger and rebooting, I
got the following error when I tried to restart PostgreSQL:

FATAL: bogus data in lock file "postmaster.pid": ""

postmaster.pid file was present in the data directory, but had zero
length. Looking at the way the file is created and written, that can
happen if you crash after the file is created, but before it's
written/fsync'd (my laptop might have write-cache enabled, which would
make the window larger).

I was a bit surprised by that. That's probably not a big deal in
practice, but I wonder if there was some easy way to avoid that. First I
thought we could create the new postmaster.pid file with a temporary
name and rename it in place, but rename(2) will merrily overwrite any
existing file which is not what we want. We could use link(2), I guess.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2012-01-05 13:23:57 Re: FATAL: bogus data in lock file "postmaster.pid": ""
Previous Message Robert Haas 2012-01-05 13:15:22 Re: ALTER DOMAIN DROP CONSTRAINT doesn't catch errors