Re: Fix memory leak in postmasterMain
| От | Chao Li |
|---|---|
| Тема | Re: Fix memory leak in postmasterMain |
| Дата | |
| Msg-id | 1658D50F-A8B3-406A-94ED-FA8C7F9DA90B@gmail.com обсуждение |
| Ответ на | Re: Fix memory leak in postmasterMain (Henrik TJ <henrik@0x48.dk>) |
| Ответы |
Re: Fix memory leak in postmasterMain
|
| Список | pgsql-hackers |
> On Apr 21, 2026, at 22:56, Henrik TJ <henrik@0x48.dk> wrote: > > 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 bystdrup() 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<v2-0001-Fix-userDoption-not-getting-freed-in-postmaster.patch> From my experience, most of the time the postmaster is started with -D. On Linux and macOS, that path can be quite long,PATH_MAX is often 4096 on many Unix-like systems, and I am not sure about Windows. So I think this leak is worth fixing. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/
В списке pgsql-hackers по дате отправления: