[pgpool-committers: 6252] pgpool: Fix inappropriate ereport call in	VALID_BACKEND.
    Tatsuo Ishii 
    ishii at sraoss.co.jp
       
    Fri Oct  4 14:06:28 JST 2019
    
    
  
Fix inappropriate ereport call in VALID_BACKEND.
VALID_BACKEND (more precisely pool_virtual_master_db_node_id) macro
emitted message if pgpool is performing failover/failback:
ereport(WARNING,
                (errmsg("failover/failback is in progress"),
                                errdetail("executing failover or failback on backend"),
                 errhint("In a moment you should be able to reconnect to the database")));
This could be called within signal handlers and
POOL_SETMASK(&BlockSig)/POOL_SETMASK(&UnBlockSig) was called to block
an interrupt because ereport is not reentrant. However it is possible
that callers have already called POOL_SETMASK, and this could result
unwanted signal unblock.
Fix is, removing ereport and POOL_SETAMASK all together. This results
in removing the message above but we have no choice.
I found the problem while investigating regression
055.backend_all_down failure but of course the bug could have bitten
users in other places.
Branch
------
V3_6_STABLE
Details
-------
https://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=9bd6206aac1da56ef916ad2cff2552015b50358f
Modified Files
--------------
src/context/pool_query_context.c | 2 ++
1 file changed, 2 insertions(+)
    
    
More information about the pgpool-committers
mailing list