leborchuk commented on PR #1979:
URL: https://github.com/apache/cloudberry/pull/1979#issuecomment-5604707096
Hi! Thank you for your contribution!
Yep, the issue is that we compiled frontend code to backend one.
But I have objections with the implementation.
The main question is why to compile frontend to backend? Here we try to fix
the consequences of this. But changed only one place (in a code), while the
other places still have the same issue. And next time we generate coredump with
other line from scram_free. So I'd propose:
try to change src/backend/replication/Makefile:33 and build
libpqwalreceiver as a shared module linking -lpq, as in upstream
(https://github.com/postgres/postgres/tree/master) does. It looks like a clean
revert — libpqwalreceiver.c:26 includes only libpq-fe.h, no internals, and the
Makefile still carries SHLIB_LINK_INTERNAL = $(libpq) and SHLIB_PREREQS =
submake-libpq. That removes the entire hazard class from the replication path
instead of one instance of it.
A copy of libpq compiled into the backend needed to support QD-QE
communication. But walreceiver is not part of that communication. So it all
looks like a bad decision somewhere in the past.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]