Re: `pg_ctl init` crashes when run concurrently; semget(2) suspected
Greg Burd <greg@burd.me>
From: "Burd, Greg" <greg@burd.me>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Gavin Panella <gavinpanella@gmail.com>,
pgsql-hackers@postgresql.org
Date: 2025-08-15T17:12:58Z
Lists: pgsql-hackers
> On Aug 12, 2025, at 4:07 PM, Thomas Munro <thomas.munro@gmail.com> wrote: > > On Mon, Aug 11, 2025 at 10:56 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> A bit more research later: OpenBSD behaves like NetBSD, while >> FreeBSD behaves like Linux. So that's pretty inconclusive about >> what the aboriginal behavior was. I also found that OpenIndiana >> behaves like Linux. > > Out of curiosity, FreeBSD changed that in 2016: > > https://github.com/freebsd/freebsd-src/commit/f00fb5457ebf5907055e420d803ac67fb098109e I believe that this is the code in macOS's "XNU" [1][2] which has similar logic (unsurprisingly) to the FreeBSD code before the identified commit [3]. best. -greg [1] https://github.com/apple-oss-distributions/xnu/blob/e3723e1f17661b24996789d8afc084c0c3303b26/bsd/kern/sysv_sem.c#L860-L889 [2] "XNU is a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD and a C++ API for writing drivers called IOKit." [3] https://github.com/freebsd/freebsd-src/commit/f00fb5457ebf5907055e420d803ac67fb098109e
Commits
-
Don't treat EINVAL from semget() as a hard failure.
- 21fddb3d7690 19 (unreleased) landed
- f4c0883448d8 15.15 landed
- e67d5f7baa7d 16.11 landed
- e3b3fa863810 13.23 landed
- b3d6e8b63bc1 14.20 landed
- ab92f0e7f7d7 17.7 landed
- 787cd2b7d5cd 18.0 landed
-
Give up on running with NetBSD/OpenBSD's default semaphore settings.
- 810a8b1c8051 18.0 cited