Re: Worth using personality(ADDR_NO_RANDOMIZE) for EXEC_BACKEND on linux?

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Thomas Munro <thomas.munro@gmail.com>, Andres Freund <andres@anarazel.de>
Cc: Robert Haas <robertmhaas@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, PostgreSQL Development <pgsql-hackers@postgresql.org>
Date: 2021-08-11T12:38:43Z
Lists: pgsql-hackers
On 8/10/21 7:59 PM, Thomas Munro wrote:
> On Wed, Aug 11, 2021 at 7:07 AM Thomas Munro <thomas.munro@gmail.com> wrote:
>> On Wed, Aug 11, 2021 at 2:12 AM Andres Freund <andres@anarazel.de> wrote:
>>> On Tue, Aug 10, 2021, at 15:19, Thomas Munro wrote:
>>>> Yeah, make check always fails for me on macOS 11.  With the attached
>>>> experimental hack, it fails only occasionally (1 in 8 runs or so).  I
>>>> don't know why.
>>> I suspect you'd need to use the hack in pg_ctl to make it reliable. The layout of normally stayed position independent postmaster can be incompatible with the non ASLR spawned child.
>> Yeah, but the patch already changes both pg_ctl.c and postmaster.c.
> /me stares at vmmap output for a while
>
> Oooh. It's working perfectly (for example if you export
> PATH=binarys:$PATH, pg_ctl -D pgdata start, make installcheck), but
> pg_regress.c has its own separate fork/exec to launch the temporary
> cluster that needs to be similarly hacked.  


initdb also runs postgres a bunch of times via system(), similarly to
pg_regress but without the "exec". Does it also need adjusting?


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




Commits

  1. Make EXEC_BACKEND more convenient on Linux and FreeBSD.

  2. Make EXEC_BACKEND more convenient on macOS.