| From: | Henrik TJ <henrik(at)0x48(dot)dk> |
|---|---|
| To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Fix memory leak in postmasterMain |
| Date: | 2026-04-21 14:56:32 |
| Message-ID: | 3e890874-8204-e1c2-8def-3a02cbad2232@0x48.dk |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi
On Sat, 21 Feb 2026, Henrik TJ wrote:
> This is fairly inconsequential as memory leaks goes, but if -D is used when
> starting postgres, the memory allocated by stdrup() will never be freed.
> Found with valgrind.
Rebased version of this patch attached.
To see valgrind catch the leak:
1. Compile with valgrind.
2. Run postgres with valgrind:
valgrind --leak-check=full ./pgrun/bin/postgres -D pgdata/
The -D argument is required, as it is the argument from there that does
not get freed. This should yield:
==444240== 8 bytes in 1 blocks are definitely lost in loss record 29 of 849
==444240== at 0x4840B26: malloc (vg_replace_malloc.c:447)
==444240== by 0x5114A2E: strdup (strdup.c:42)
==444240== by 0x6B7CE0: PostmasterMain (../src/backend/postmaster/postmaster.c:656)
==444240== by 0x602555: main (../src/backend/main/main.c:231)
best regards, Henrik
| Attachment | Content-Type | Size |
|---|---|---|
| v2-0001-Fix-userDoption-not-getting-freed-in-postmaster.patch | text/plain | 765 bytes |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tatsuya Kawata | 2026-04-21 14:56:45 | Re: [PATCH] Doc: Fix missing func_signature role in pg_get_tablespace_ddl entry |
| Previous Message | Melanie Plageman | 2026-04-21 14:42:25 | Re: Two issues leading to discrepancies in FSM data on the standby server |