Re: pg_hba_lookup function to get all matching pg_hba.conf entries
От | Amit Kapila |
---|---|
Тема | Re: pg_hba_lookup function to get all matching pg_hba.conf entries |
Дата | |
Msg-id | CAA4eK1+RnXV9A=w+aG8VUZuxa-4+i2fXbDB99=RjDaefkxrM8w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: pg_hba_lookup function to get all matching pg_hba.conf entries (Haribabu Kommi <kommi.haribabu@gmail.com>) |
Ответы |
Re: pg_hba_lookup function to get all matching pg_hba.conf entries
|
Список | pgsql-hackers |
On Thu, Dec 10, 2015 at 6:46 AM, Haribabu Kommi <kommi.haribabu@gmail.com> wrote:
>
> On Thu, Dec 10, 2015 at 4:22 AM, Alvaro Herrera
> <alvherre@2ndquadrant.com> wrote:
> > Haribabu Kommi wrote:
> >
> >> Reverting the context release patch is already provided in the first
> >> mail of this
> >> thread [1]. Forgot to mention about the same in further mails.
> >>
> >> Here I attached the same patch. This patch needs to be applied first before
> >> pg_hba_lookup patch. I tested it in windows version also.
> >
> > So if you change the file and reload repeatedly, we leak all the memory
> > allocated for HBA lines in TopMemoryContext? This doesn't sound great.
> > Perhaps we need a dedicated context which can be reset at will so that
> > it can be refilled with the right info when we reload the file.
>
> No. There is no leaks associated with pg_hba.conf parsing. we already have
> a memory context called "hba parser context" allocated from Postmaster
> context. The "revert_hba_context_release_in_backend" patch changes it to
> TopMemoryContext. The memory required for parsing and storing parsed
> hba lines is obtained from this context.
>
>
> On Thu, Dec 10, 2015 at 4:22 AM, Alvaro Herrera
> <alvherre@2ndquadrant.com> wrote:
> > Haribabu Kommi wrote:
> >
> >> Reverting the context release patch is already provided in the first
> >> mail of this
> >> thread [1]. Forgot to mention about the same in further mails.
> >>
> >> Here I attached the same patch. This patch needs to be applied first before
> >> pg_hba_lookup patch. I tested it in windows version also.
> >
> > So if you change the file and reload repeatedly, we leak all the memory
> > allocated for HBA lines in TopMemoryContext? This doesn't sound great.
> > Perhaps we need a dedicated context which can be reset at will so that
> > it can be refilled with the right info when we reload the file.
>
> No. There is no leaks associated with pg_hba.conf parsing. we already have
> a memory context called "hba parser context" allocated from Postmaster
> context. The "revert_hba_context_release_in_backend" patch changes it to
> TopMemoryContext. The memory required for parsing and storing parsed
> hba lines is obtained from this context.
>
tokenize_file() is called before creation of hba parser context, so below
change would be problem.
*** 386,392 **** tokenize_file(const char *filename, FILE *file,
MemoryContext linecxt;
MemoryContext oldcxt;
! linecxt = AllocSetContextCreate(CurrentMemoryContext,
"tokenize file cxt",
ALLOCSET_DEFAULT_MINSIZE,
ALLOCSET_DEFAULT_INITSIZE,
--- 386,392 ----
MemoryContext linecxt;
MemoryContext oldcxt;
! linecxt = AllocSetContextCreate(TopMemoryContext,
"tokenize file cxt",
ALLOCSET_DEFAULT_MINSIZE,
ALLOCSET_DEFAULT_INITSIZE,
How about creating "hba parser context" and "ident parser context"
at the beginning of their respective functions and don't change
anything in tokenize_file()?
В списке pgsql-hackers по дате отправления: