summaryrefslogtreecommitdiff
path: root/contrib/pgxc_clean
AgeCommit message (Collapse)Author
2017-07-05Correct simple_prompt calls in pgxc_ctlTomas Vondra
Commit 9daec77e165de461fca9d5bc3ece86a91aba5804 simplified usage of simple_prompt, so that it's not necessary to free the string etc. This applies the call chage to pgxc_ctl.
2017-01-28add pgxc_clean/pgxc_ctl/pgxc_monitor binaries to .gitignoreTomas Vondra
Make the 'git status' a bit less verbose by ignoring the binaries, and also th generated .c/.h files in pgxc_ctl.
2016-10-18Correctly check for implicit 2PC.Pavan Deolasee
Now we have far more information embedded in the GID string. So there is no point looking for [0-9]+ pattern beyond the prefix. Just assume external tools would never use that pattern (PREPARE TRANSACTION should anyway throw an error if they try to use the pattern)
2016-10-18Fix various potential buffer overflows which got exposed after we recentlyPavan Deolasee
increased GIDSIZE Per report by Tobias Oberstein
2016-10-18Fix misc issues with two-phase commit protocol and cleaning up of outstandingPavan Deolasee
transactions When a two-phase commit protocol is interrupted mid-way, for example because of a server crash, it can leave behind unresolved prepared transactions which must be resolved when the node comes back. Postgres-XL provides a pgxc_clean utility to lookup list of prepared transactions and resolve them based on status of such a transaction on every node. But there were many issues with the utility because of which it would either fail to resolve all transactions, or worse resolve it in a wrong manner. This commit fixes all such issues discovered during some simple crash recovery testing. One of the problem with the current approach was that the utility would not know which all nodes were involved in a transaction. So if it sees a transaction as prepared on a subset of nodes, but does not exist on other subset, it would not know if originally it was executed on nodes other than where its prepared, but other nodes failed before they could prepare the transaction. If it was indeed executed on other nodes, such transaction must be aborted. Whereas if it was only executed on the set of nodes where its currently prepared, then it can safely be committed. We now store the information about nodes partcipating in a 2PC directly in the GID. This of course has a downside of increasing the GIDSIZE which implies for shared memory requirement. But with today's server sizes, it should not be a very big concern. Sure, we could also look at possibility of storing this information externally, such as on the GTM. But the fix seems good enough for now.
2012-11-14This commit fixes several bugs:Koichi Suzuki
1. --status does not work 2. Failed to set xc_maintenance_mode. () message is printed. First of all, now --status is a submode of --verbose. It was modified to handle --status as --verbose. This is a quick fix and should improve in the next major release. Second was caused by SET XC_MAINTENANCE_MODE = ON to template0. It is not correct and now template0 was skipped.
2012-07-12Correct grammar of EXECUTE DIRECT in pgxc_cleanMichael Paquier
This is a consequence of commit 011b1d7.
2012-07-12Remove trailing whitespaces in contrib module pgxc_cleanMichael Paquier
2012-06-07Correct segenv in pgxc_clean due to argument initializationMichael Paquier
Launching pgxc_clean made it crash when free'ing some fields with commands where arguments were not all specified. Patch by Mason Sharp, some reformat by me.
2012-05-31Move pgxc_clean and pgxc_ddl to contrib modulesMichael Paquier
Both features are not directly related to the core features, so it is better to move them there. The installation of pgxc_clean can be done with the same way as a normal contrib module. pgxc_ddl is not installed by default, but is kept for future developments. Documentation is moved the same way.