git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: b538e83) | patch
Prevent concurrent SimpleLruTruncate() for any given SLRU.
2020年8月15日 17:15:53 +0000 (10:15 -0700)
2020年8月15日 17:15:56 +0000 (10:15 -0700)
commit 592a589a04bd456410b853d86bd05faa9432cbbb
Prevent concurrent SimpleLruTruncate() for any given SLRU.

The SimpleLruTruncate() header comment states the new coding rule. To
achieve this, add locktype "frozenid" and two LWLocks. This closes a
rare opportunity for data loss, which manifested as "apparent
wraparound" or "could not access status of transaction" errors. Data
loss is more likely in pg_multixact, due to released branches' thin
margin between multiStopLimit and multiWrapLimit. If a user's physical
replication primary logged ": apparent wraparound" messages, the user
should rebuild standbys of that primary regardless of symptoms. At less
risk is a cluster having emitted "not accepting commands" errors or
"must be vacuumed" warnings at some point. One can test a cluster for
this data loss by running VACUUM FREEZE in every database. Back-patch
to 9.5 (all supported versions).

Discussion: https://postgr.es/m/20190218073103.GA1434723@rfd.leadboat.com
doc/src/sgml/catalogs.sgml diff | blob | blame | history
doc/src/sgml/monitoring.sgml diff | blob | blame | history
src/backend/access/transam/slru.c diff | blob | blame | history
src/backend/access/transam/subtrans.c diff | blob | blame | history
src/backend/commands/async.c diff | blob | blame | history
src/backend/commands/vacuum.c diff | blob | blame | history
src/backend/storage/lmgr/lmgr.c diff | blob | blame | history
src/backend/storage/lmgr/lwlocknames.txt diff | blob | blame | history
src/backend/utils/adt/lockfuncs.c diff | blob | blame | history
src/include/storage/lmgr.h diff | blob | blame | history
src/include/storage/lock.h diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /