I'm not a programmer, but I do understand a tiny bit of C that allows me to do some basic debugging.
For quite some time, recent versions of pgpool build on FreeBSD but spit out some errors on exit regarding the regex filters used to blacklist and whitelist certain SQL functions. As one might expect, that means those particular filters are not being applied, which makes using pgpool in production on FreeBSD a bit dangerous -- these filters are to prevent what might appear to pgpool to be a read-only database operation but is actually a write operation (like nextval()) from being sent to a read-only database slave.
The whole troubleshooting effort I've been going back and forth with the pgpool developer is somewhat complicated, so I won't repeat it here, you can check out the bug report at the pgpool bugtracker.
Right now, the issue seems mostly fixed, but the fix is quite ugly, and what's really bugging me is I don't understand why the fix works. Basically we go through all the Makefiles in the project and remove all references to
So at this point there are three outstanding questions that if answered could get FreeBSD a functioning pgpool port:
Any help would be appreciated. If you have good information, feel free to add it directly to the pgpool bugtracker, the developer is stuck at this point.
For quite some time, recent versions of pgpool build on FreeBSD but spit out some errors on exit regarding the regex filters used to blacklist and whitelist certain SQL functions. As one might expect, that means those particular filters are not being applied, which makes using pgpool in production on FreeBSD a bit dangerous -- these filters are to prevent what might appear to pgpool to be a read-only database operation but is actually a write operation (like nextval()) from being sent to a read-only database slave.
The whole troubleshooting effort I've been going back and forth with the pgpool developer is somewhat complicated, so I won't repeat it here, you can check out the bug report at the pgpool bugtracker.
Right now, the issue seems mostly fixed, but the fix is quite ugly, and what's really bugging me is I don't understand why the fix works. Basically we go through all the Makefiles in the project and remove all references to
-lcompat
. With this change, the regex parser no longer barfs on valid regex patterns and testing seems to indicate the filters are being applied correctly.So at this point there are three outstanding questions that if answered could get FreeBSD a functioning pgpool port:
- What exactly does linking to the compat library do and where is the compat library documented?
- Is it proper to fix this by simply not linking to the compat library or is this masking some other underlying problem and/or linuxism in the codebase?
- If it is proper to remove the compat library, what's the best crash course for getting familiar enough with autotools to be able to figure out how to stop the
-lcompat
linking?
Any help would be appreciated. If you have good information, feel free to add it directly to the pgpool bugtracker, the developer is stuck at this point.