pgsql: Rework memory contexts in charge of HBA/ident tokenization - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Rework memory contexts in charge of HBA/ident tokenization
Date
Msg-id E1oxz5C-000YTG-EI@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Rework memory contexts in charge of HBA/ident tokenization

The list of TokenizedAuthLines generated at parsing for the HBA and
ident files is now stored in a static context called tokenize_context,
where only all the parsed tokens are stored.  This context is created
when opening the first authentication file of a HBA/ident set (hba_file
or ident_file), and is cleaned up once we are done all the work around
it through a new routine called free_auth_file().  One call of
open_auth_file() should have one matching call of free_auth_file(), the
creation and deletion of the tokenization context is controlled by the
recursion depth of the tokenization.

Rather than having tokenize_auth_file() return a memory context that
includes all the records, the tokenization logic now creates and deletes
one memory context each time this function is called.  This will
simplify recursive calls to this routine for the upcoming inclusion
record logic.

While on it, rename tokenize_inc_file() to tokenize_expand_file() as
this would conflict with the upcoming patch that will add inclusion
records for HBA/ident files.  An '@' file has its tokens added to an
existing list.

Reloading HBA/indent configuration in a tight loop shows no leaks, as of
one type of test done (with and without -DEXEC_BACKEND).

Author: Michael Paquier
Reviewed-by: Julien Rouhaud
Discussion: https://postgr.es/m/Y324HvGKiWxW2yxe@paquier.xyz

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/efc981627a723d91e86865fb363d793282e473d1

Modified Files
--------------
src/backend/libpq/hba.c          | 158 +++++++++++++++++++++++++++++----------
src/backend/utils/adt/hbafuncs.c |  12 +--
src/include/libpq/hba.h          |   5 +-
3 files changed, 124 insertions(+), 51 deletions(-)


pgsql-committers by date:

Previous
From: Alexander Korotkov
Date:
Subject: pgsql: Support for custom slots in the custom executor nodes
Next
From: Michael Paquier
Date:
Subject: Re: pgsql: Expand AclMode to 64 bits