Re: [HACKERS] segfault in HEAD when too many nested functions call
От | Andres Freund |
---|---|
Тема | Re: [HACKERS] segfault in HEAD when too many nested functions call |
Дата | |
Msg-id | 20170727220952.fdnuxrrw6towz5dy@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: [HACKERS] segfault in HEAD when too many nested functions call (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] segfault in HEAD when too many nested functions call
|
Список | pgsql-hackers |
On 2017-07-26 16:28:38 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2017-07-26 15:03:37 -0400, Tom Lane wrote: > >> Hm, that seems kinda backwards to me; I was envisioning the checks > >> moving to the callees not the callers. I think it'd end up being > >> about the same number of occurrences of CHECK_FOR_INTERRUPTS(), > >> and there would be less of a judgment call about where to put them. > > > Hm, that seems a bit riskier - easy to forget one of the places where we > > might need a CFI(). > > I would argue the contrary. If we put a CFI at the head of each node > execution function, then it's just boilerplate that you copy-and-paste > when you invent a new node type. The way you've coded it here, it > seems to involve a lot of judgment calls. That's very far from being > copy and paste, and the more different it looks from one node type > to another, the easier it will be to forget it. > > > We certainly are missing a bunch of them in various nodes > > It's certainly possible that there are long-running loops not involving > any ExecProcNode recursion at all, but that would be a bug independent > of this issue. The CFI in ExecProcNode itself can be replaced exactly > either by asking all callers to do it, or by asking all callees to do it. > I think the latter is going to be more uniform and harder to screw up. Looks a bit better. Still a lot of judgement-y calls tho, e.g. when one node function just calls the next, or when there's loops etc. I found a good number of missing CFIs... What do you think? - Andres -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: