Re: OOM in spgist insert
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Pavel Borisov <pashkin.elfe@gmail.com>, Dilip Kumar <dilipbalaut@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-05-13T22:49:33Z
Lists: pgsql-hackers
On 2021-May-13, Tom Lane wrote: > What do people think about back-patching this? In existing branches, > we've defined it to be an opclass bug if it fails to shorten the leaf > datum enough. But not having any defenses against that seems like > not a great idea. OTOH, the 10-cycles-to-show-progress rule could be > argued to be an API break. I think if the alternative is to throw an error, we can afford to retry quite a few more times than 10 in order not have that called an API break. Say, retry (MAXIMUM_ALIGNOF << 3) times or so (if you want to parameterize on maxalign). It's not like this is going to be a performance drag where not needed .. but I think leaving back-branches unfixed is not great. I did run Dilip's test case as well as your new regression test, and both work as intended with your new code (and both OOM-crash the original code). -- Álvaro Herrera Valdivia, Chile
Commits
-
Prevent infinite insertion loops in spgdoinsert().
- e87a0d2e0aa5 10.18 landed
- dc714c120eab 13.4 landed
- d776045eb12a 11.13 landed
- c3c35a733c77 14.0 landed
- 5015d3c35c6b 9.6.23 landed
- 4e046281fb58 12.8 landed
-
Fix query-cancel handling in spgdoinsert().
- eb7a6b922943 14.0 landed
- fe64adc93177 10.18 landed
- f4ee4082f50b 11.13 landed
- c1b72bf04515 13.4 landed
- 4c6cfcc377aa 9.6.23 landed
- 004288d3c0ac 12.8 landed
-
Refactor CHECK_FOR_INTERRUPTS() to add flexibility.
- e47f93f981cc 14.0 landed
- 8274f4517602 11.13 landed
- 63831c16275e 13.4 landed
- 567328989c19 9.6.23 landed
- 4c646b17985c 12.8 landed
- 39b8ccb08619 10.18 landed