Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doesn't compile against PG18 #187

Open
robe2 opened this issue Feb 2, 2025 · 1 comment
Open

Doesn't compile against PG18 #187

robe2 opened this issue Feb 2, 2025 · 1 comment

Comments

@robe2
Copy link
Contributor

robe2 commented Feb 2, 2025

I added PG18 to test harness on #186 but it's failing compiling. I suspect it's because pgsignal signature changed in PG18.

I'll attempt at a fix and include that as part of #186.

@robe2
Copy link
Contributor Author

robe2 commented Feb 2, 2025

FWIW I traced the issue to commit

commit d4a43b2
Author: Nathan Bossart
Date: Thu Jan 16 16:41:05 2025 -0600

Convert libpgport's pqsignal() to a void function.

The protections added by commit 3b00fdba9f introduced race
conditions to this function that can lead to bogus return values.
Since nobody seems to inspect the return value, this is of little
consequence, but it would have been nice to convert it to a void
function to avoid any possibility of a bogus return value.  I
originally thought that doing so would have required also modifying
legacy-pqsignal.c's version of the function (which would've
required an SONAME bump), but commit 9a45a89c38 gave
legacy-pqsignal.c its own dedicated extern for pqsignal(), thereby
decoupling it enough that libpgport's pqsignal() can be modified.

This commit also adds an assertion for the return value of
sigaction()/signal().  Since a failure most likely indicates a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant