| From: | Richard Guo <riguo(at)pivotal(dot)io> | 
|---|---|
| To: | pgsql-hackers(at)postgresql(dot)org | 
| Subject: | Restore CurrentUserId only if 'prevUser' is valid when abort transaction | 
| Date: | 2018-10-10 07:37:50 | 
| Message-ID: | CAN_9JTxECSb=pEPcb0a8d+6J+bDcOZ4=DgRo_B7Y5gRHJUM=Rw@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Hi,
This is a follow-up to the issue described in thread
https://www.postgresql.org/message-id/CAMbWs4-Mys%3DhBQSevTA8Zpd-TYFnb%3DXuHhN2TnktXMsfMUbjiQ%40mail.gmail.com
In short, during the first transaction starting phase within a backend, if
there is an 'ereport' after setting transaction state but before saving
CurrentUserId into 'prevUser' in TransactionStateData, 'prevUser' will
remain
as InvalidOid. Then in AbortTransaction(), CurrentUserId is restored with
'prevUser'. As a result, CurrentUserId will be InvalidOid in the rest of the
session.
Attached is a patch that fixes this issue.
Thanks
Richard
| Attachment | Content-Type | Size | 
|---|---|---|
| 0001-Restore-CurrentUserId-only-if-prevUser-is-valid.patch | application/octet-stream | 1.7 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | legrand legrand | 2018-10-10 07:59:16 | Re: [Proposal] Add accumulated statistics for wait event | 
| Previous Message | Imai, Yoshikazu | 2018-10-10 07:28:19 | RE: Why we allow CHECK constraint contradiction? |