forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit5c62ecf
committed
Don't release index root page pin in ginFindParents().
It's clearly stated in the comments that ginFindParents() must keepthe pin on the index's root page that's associated with the topmostGinBtreeStack item. However, the code path for the case that thedesired downlink has been pushed down to the next index levelignored this proviso, and would release the pin anyway if we werestill examining the root level. That led to an assertion failureor "buffer NNNN is not owned by resource owner" error later, whenwe try to release the pin again at the end of the insertion.This is quite hard to reproduce, since it can only happen if anindex root page split occurs concurrently with our own insertion.Thanks to Jeff Janes for finding a test case that triggers itoften enough to allow investigation.This has been there since the beginning of GIN, so back-patchto all supported branches.Discussion:https://postgr.es/m/CAMkU=1yCAKtv86dMrD__Ja-7KzjE=uMeKX8y__cx5W-OEWy2ow@mail.gmail.com1 parentc3fd6a1 commit5c62ecf
1 file changed
+5
-1
lines changedLines changed: 5 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
272 | 272 |
| |
273 | 273 |
| |
274 | 274 |
| |
275 |
| - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
276 | 280 |
| |
277 | 281 |
| |
278 | 282 |
| |
|
0 commit comments
Comments
(0)