View Issue Details

IDProjectCategoryView StatusLast Update
0000302Pgpool-IIBugpublic2017-07-03 14:32
Reporternagata Assigned Tonagata  
PrioritynormalSeveritymajorReproducibilityunable to reproduce
Status closedResolutionfixed 
Product Version3.4.2 
Summary0000302: failover with watchdog causes inconsistent backend status
DescriptionIn the recent implementation, degeneration requests are queued in Req_info->request[], and processed by FIFO manner. So, When watchdog is enabled and degeneration for more than one backends are requested, it is possible that these requests are registered in different order in different pgpool.

For example, when degeneration for backend 0 and 1 are requested, one pgpool may degenerate backend 0 at first, while other pgpool may degerate backend 1 at first.

Unfortunately, even in this situation, interlocking of failover command execution works, and the script is executed by only one pgpool. So, it is possible that both pgpools never trigger promoting or different pgpool tries to promote different backend.

This condition also could be a cause of inconsistent backend status, because when one pgpool send degeneration request for backend 0 to ther pgpool which is degenerating backend 1, this request is cancelled with the following message

 "degenerate backend request for %d node(s) from pid [%d] is canceled by other pgpool"

As the result, it is possible that backend 0 is degenerated at only one pgpool.


This situation occured in our client's environment with Pgpool-II 3.4.2, but I have not been able to reproduce it yet. I'm also not sure that this can occurs in the recent watchdog since Pgpool-II 3.5.
TagsNo tags attached.

Activities

nagata

2017-07-03 14:32

developer   ~0001564

I can't reproduce it and have never heard the same situation yet, so I closed this for now. It might be re-opened when the same problem is reported.

Issue History

Date Modified Username Field Change
2017-04-19 16:38 nagata New Issue
2017-05-16 09:53 t-ishii Assigned To => nagata
2017-05-16 09:53 t-ishii Status new => assigned
2017-07-03 14:32 nagata Note Added: 0001564
2017-07-03 14:32 nagata Status assigned => closed
2017-07-03 14:32 nagata Resolution open => fixed