Re: Worth using personality(ADDR_NO_RANDOMIZE) for EXEC_BACKEND on linux?
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Andres Freund <andres@anarazel.de>,
Alvaro Herrera <alvherre@alvh.no-ip.org>, Andrew Dunstan <andrew@dunslane.net>,
PostgreSQL Development <pgsql-hackers@postgresql.org>
Date: 2021-08-11T22:24:09Z
Lists: pgsql-hackers
On Thu, Aug 12, 2021 at 1:45 AM Robert Haas <robertmhaas@gmail.com> wrote: > I think that worked for me on older macOS releases, and then it > stopped working at some point after some update or reinstall or > something. Unfortunately I don't know any more precisely than that, > but it does seem like we have to find some other approach to work on > modern systems. I gave up on trying to make that work once I realised that /usr/lib/dyld doesn't seem to obey the flag, so although other segments become deterministic and the success rate is fairly high, there's still a 600kb wrecking ball swinging around. I wondered what the "slide" range could be... it appears to be fairly small (vm_map_get_max_aslr_slide_pages() seems to be the place that's determined and it's a 16MB or 256MB window, depending on architecture, if I read that right). Given that, the death of 32 bit processes since Catalina, and the typical layout we see, I think just doing something like (/me rolls dice) export PG_SHMEM_ADDR=0x80000000000 is a good candidate for something that works on both architectures, being many TB away from everything else (above everything on ARM, between heap etc and libs on Intel but with 8TB of space below it and 120TB above). That gets the tests passing consistently with unpatched master, -DEXEC_BACKEND, on both flavours of silicon.
Commits
-
Make EXEC_BACKEND more convenient on Linux and FreeBSD.
- 6b4dba711a4e 12.15 landed
- 1e4fda6da918 13.11 landed
- 0801345758db 14.8 landed
- f3e78069db7f 15.0 landed
-
Make EXEC_BACKEND more convenient on macOS.
- 8201b60565b8 14.0 landed
- 2c6275423535 13.5 landed
- a8096e30f4d0 12.9 landed
- 0bfefb7dafe0 11.14 landed
- d49e228a664d 10.19 landed
- 715a8668a5f7 9.6.24 landed
- 88cbbbfa3e2b 15.0 landed