Thread
Commits
-
Fix memory leak when guc.c decides a setting can't be applied now.
- f35c11770012 12.5 landed
- cfa4cff30c30 11.10 landed
- c7573ab1eca7 9.6.20 landed
- a5c77e6b8cd5 10.15 landed
- 9343bfefa451 13.1 landed
- 43ca5e07d1bb 9.5.24 landed
- 397ea901e85b 14.0 landed
-
BUG #16666: Slight memory leak when running pg_ctl reload
The Post Office <noreply@postgresql.org> — 2020-10-12T13:32:13Z
The following bug has been logged on the website: Bug reference: 16666 Logged by: BoChen Email address: bchen90@163.com PostgreSQL version: 11.8 Operating system: SUSE Linux Enterprise Server 11 (x86_64) Description: I found slighting memory leakage occured when running pg_ctl reload command for the following code segment(guc.c:6726-6740). When runing 'pg_ctl reload', for these string type PGC_POSTMASTER GUC variables like 'unix_socket_directories', the following code segment will leak newval's memery. if (prohibitValueChange) { /* newval shouldn't be NULL, so we're a bit sloppy here */ if (*conf->variable == NULL || newval == NULL || strcmp(*conf->variable, newval) != 0) { record->status |= GUC_PENDING_RESTART; ereport(elevel, (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), errmsg("parameter \"%s\" cannot be changed without restarting the server", name))); return 0; } record->status &= ~GUC_PENDING_RESTART; return -1; } -
Re: BUG #16666: Slight memory leak when running pg_ctl reload
Bruce Momjian <bruce@momjian.us> — 2020-10-12T14:19:38Z
On Mon, Oct 12, 2020 at 01:32:13PM +0000, PG Bug reporting form wrote: > The following bug has been logged on the website: > > Bug reference: 16666 > Logged by: BoChen > Email address: bchen90@163.com > PostgreSQL version: 11.8 > Operating system: SUSE Linux Enterprise Server 11 (x86_64) > Description: > > I found slighting memory leakage occured when running pg_ctl reload command > for the following code segment(guc.c:6726-6740). When runing 'pg_ctl > reload', for these string type PGC_POSTMASTER GUC variables like > 'unix_socket_directories', the following code segment will leak newval's > memery. Uh, you are saying pg_ctl leaks memory or the database server leaks memory? I don't see any memory allocation in the code you posted. -- Bruce Momjian <bruce@momjian.us> https://momjian.us EnterpriseDB https://enterprisedb.com The usefulness of a cup is in its emptiness, Bruce Lee
-
Re: BUG #16666: Slight memory leak when running pg_ctl reload
Tom Lane <tgl@sss.pgh.pa.us> — 2020-10-12T14:42:27Z
Bruce Momjian <bruce@momjian.us> writes: > Uh, you are saying pg_ctl leaks memory or the database server leaks > memory? I don't see any memory allocation in the code you posted. I've not looked at the code yet, but I think the OP is worried that we need to free(newval) before these "return"s. regards, tom lane
-
Re: BUG #16666: Slight memory leak when running pg_ctl reload
Tom Lane <tgl@sss.pgh.pa.us> — 2020-10-12T17:37:51Z
PG Bug reporting form <noreply@postgresql.org> writes: > I found slighting memory leakage occured when running pg_ctl reload command > for the following code segment(guc.c:6726-6740). When runing 'pg_ctl > reload', for these string type PGC_POSTMASTER GUC variables like > 'unix_socket_directories', the following code segment will leak newval's > memery. Yeah, you're right. If there's a "newextra" chunk, that'll get leaked too. Even counting that, it's not very plausible that one would SIGHUP a server often enough that the bloat would become obvious, since these values typically aren't very large. But it's clearly a bug. Patch applied, thanks for the report! regards, tom lane