Release Date: 2023-08-17
Install system exit callback only after initialization of shared memory. (Muhammad Usama)
When the on-exit callback gets called because of a failure to acquire shared memory. The cleanup function can produce a segfault while accessing process_info, that lives in shared memory. Although we can also fix this by bailing out from the exit callback when process_info is NULL but installing the function after successful initialization of shared memory is a better approach as the rest of the system always assumes the process_info can never be NULL, and also, there is nothing to clean up before child processes are spawned.
Add schema qualification to some system catalog inquiry functions. (Tatsuo Ishii)
Fix covery warning. (Tatsuo Ishii)
Fix query cache module assigned time_t value to int32 variable. Change the variable type to int64. Per Coverity. Also use difftime() to calculate time_t difference. This is a recommended practice. https://www.jpcert.or.jp/sc-rules/c-msc05-c.html
Fix find_primary_node_repeatedly doesn't terminate within search_primary_node_timeout. (Bo Peng)
Fix PREPARE in multi-statement case. (Tatsuo Ishii)
If multi-statement query includes PREPARE in the second or latter position, and subsequent bind message uses the prepared statement, it fails with "unable to bind" error because the prepared statement is not saved in sent messages.
To fix this if such a case found after parsing the statement, create a query context for the named statement and add it to the sent message list.
For this new regression test 079..multi_prepare is added.
Fix pgproto to work with bind message using params. (Tatsuo Ishii)
Previously pgproto can only process bind messages without params.
Clarify the meaning of stop mode. (Tatsuo Ishii)
Enhance SSH public key authentication setting section in "8.2. Pgpool-II + Watchdog Setup Example". (Bo Peng)
Enhance online recovery documentation. (Bo Peng)
Mention that 2nd stage of online recovery does not work properly only for multiple pgpool nodes without watchdog enabled.
Fix occasional 069.memory_leak_extended test failure. (Tatsuo Ishii)
It turned out that reason of the occasional test failure is, pgpool child process is gone before running ps command after pgbench finishes. The cause is a kind mismatch FATAL error, "DISCARD ALL cannot be executed within a pipeline". To fix this, run pgbench in background and get the process size before pgbench finishes.