| From: | Álvaro Herrera <alvherre(at)kurilemu(dot)de> |
|---|---|
| To: | Michael Paquier <michael(at)paquier(dot)xyz> |
| Cc: | Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: BRIN autosummarization lacking a snapshot |
| Date: | 2025-11-04 17:37:14 |
| Message-ID: | 202511041733.vkh6l7rzcwjg@alvherre.pgsql |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 2025-Nov-04, Álvaro Herrera wrote:
> Ah, the problem is that perform_work_item() pushes an active snapshot
> before calling the BRIN function, but because of the error, we
> terminate the transaction before returning, so when we try to Pop that
> snapshot, it doesn't exist anymore. Other ways for this to happen would
> be an autovacuum worker trying to run an item for a dropped table (the
> "goto deleted2" case).
Of course, the answer is just to inquire ActiveSnapshotSet() beforehand.
I tested this by adding an elog(ERROR) in perform_work_item() -- without
this fix, I see a segfault, which disappears with it.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Debido a que la velocidad de la luz es mucho mayor que la del sonido,
algunas personas nos parecen brillantes un minuto antes
de escuchar las pelotudeces que dicen." (Roberto Fontanarrosa)
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-fix-brin-failure.patch | text/x-diff | 832 bytes |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jeff Davis | 2025-11-04 17:51:18 | Re: Fix redundant memset after palloc0 in heap_form_minimal_tuple() |
| Previous Message | Tom Lane | 2025-11-04 17:24:41 | Re: [PATCH] Fix ALTER SYSTEM empty string bug for GUC_LIST_QUOTE parameters |