Re: BUG #19391: pg_ctl: the PID file "/xxxx/postmaster.pid" is empty
| От | Dmitry Kovalenko |
|---|---|
| Тема | Re: BUG #19391: pg_ctl: the PID file "/xxxx/postmaster.pid" is empty |
| Дата | |
| Msg-id | c431719e-43cc-4a8e-a8d5-bc915d768db2@postgrespro.ru обсуждение |
| Ответ на | Re: BUG #19391: pg_ctl: the PID file "/xxxx/postmaster.pid" is empty (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-bugs |
Hello, Hope, I was able to fix this problem on a level of my code. When I get an error "the PID file "/xxxx/postmaster.pid" is empty" I try to find postmaster process. If it exists, I sleep few seconds and try to call pg_ctl again. I am using ps + grep to find this process. I think, it will be really useful to get this PID from "pg_ctl start" output instead this combination. If it possible, of course. Thanks&Regards, Dmitry Kovalenko 31.01.2026 4:52, Tom Lane пишет: > PG Bug reporting form <noreply@postgresql.org> writes: >> My test framework uses "pg_ctl status ..." to detect a state of Postgres >> instance - uninitialized, stopped, running. >> Time from time, it returns the error - pg_ctl: the PID file >> "/xxxx/postmaster.pid" is empty > If you're issuing "pg_ctl status" while a postmaster is starting, it's > possible that you're hitting the tiny window where CreateLockFile() > has opened the file but not yet written anything into it. > > We could imagine making pg_ctl not treat this as an error, but > I'm hesitant to do so because of possibly creating race conditions > for the pg_ctl start/stop cases. (Well, it's inherently a race > situation if you issue two concurrent starts ... what I mean is > that failing is the safest option in that scenario.) Depending > on what you intend to do with the pg_ctl status result, acting > as if this isn't an error case could be risky there too. > Given an empty file, we can't distinguish "a postmaster is in > progress of starting" from "a postmaster died while starting", > since no PID is available to test. > > regards, tom lane
В списке pgsql-bugs по дате отправления: