| From: | Ranier Vilela <ranier_gyn(at)hotmail(dot)com> |
|---|---|
| To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | RE: [PATCH][BUG FIX] Unsafe access pointers. |
| Date: | 2019-11-15 12:24:04 |
| Message-ID: | MN2PR18MB292780E1F07F3C4E7FE9D63DE3700@MN2PR18MB2927.namprd18.prod.outlook.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
Thank you for the explanation.
Best regards.
Ranier Vilela
________________________________________
De: Daniel Gustafsson <daniel(at)yesql(dot)se>
Enviado: sexta-feira, 15 de novembro de 2019 11:58
Para: Ranier Vilela
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Assunto: Re: [PATCH][BUG FIX] Unsafe access pointers.
> On 15 Nov 2019, at 12:25, Ranier Vilela <ranier_gyn(at)hotmail(dot)com> wrote:
> It's probably not happening, but it can happen, I think.
I don't think it can, given how elog() works.
> - if (!HeapTupleIsValid(classtup))
> + if (!HeapTupleIsValid(classtup)) {
> elog(ERROR, "cache lookup failed for operator class %u", opclassoid);
> + return false;
elog or ereport with a severity of ERROR or higher will never return.
> - if (!HeapTupleIsValid(familytup))
> + if (!HeapTupleIsValid(familytup)) {
> elog(ERROR, "cache lookup failed for operator family %u", opfamilyoid);
> + ReleaseSysCache(classtup);
> + return false;
> + }
Not only will elog(ERROR ..) not return to run this, the errorhandling
machinery will automatically release resources and clean up.
cheers ./daniel
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2019-11-15 13:16:22 | Re: [HACKERS] [WIP] Effective storage of duplicates in B-tree index. |
| Previous Message | Martin Liška | 2019-11-15 12:11:36 | Re: segfault in geqo on experimental gcc animal |