BUG #17196: old_snapshot_threshold is not honored if there is a transaction

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: jobin(dot)augustine(at)percona(dot)com
Subject: BUG #17196: old_snapshot_threshold is not honored if there is a transaction
Date: 2021-09-20 06:14:56
Message-ID: 17196-6c6c9e476971c07c@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 17196
Logged by: Jobin Augustine
Email address: jobin(dot)augustine(at)percona(dot)com
PostgreSQL version: 13.4
Operating system: Any
Description:

I am not quite sure whether this should be called a "Bug". But I thought of
reporting because many suffer and has a potential for user abuse.

Problem:
A user can just create a table and then issue SELECT ... FOR UPDATE on that
table. This will prevent all vacuums to be held up across all tables in
PostgreSQL, even if we set a limit to old_snapshot_threshold. The entire
database will become heavily bloated, hence unresponsive, resulting in a
service denial situation.
This is causing problems for OpenSource Projects like ActiveMQ when they use
PostgreSQL (They are using workarounds now).
http://spatula.net/mt/blog/2014/02/postgresql-activemq-autovacuum-hell.html

Browse pgsql-bugs by date

  From Date Subject
Next Message Duncan Sands 2021-09-20 12:10:17 Re: Query planning on partitioned table causes postgres 13.4 to consume all memory
Previous Message Noah Misch 2021-09-20 04:41:43 Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data