Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFCWk-004pxw-1i for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 14:56:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wFCWj-009JtF-1M for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 14:56:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFCWj-009Jsz-04 for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 14:56:37 +0000 Received: from relay8-d.mail.gandi.net ([217.70.183.201]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wFCWg-00000002JUZ-3EpM for pgsql-hackers@postgresql.org; Tue, 21 Apr 2026 14:56:36 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 3A0A03EC32 for ; Tue, 21 Apr 2026 14:56:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=0x48.dk; s=gm1; t=1776783393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=+e0leC/+aEOg2rNu18DdTfXOIL2dI4OGeC7ZVX56EGY=; b=bkq4ltfQexNlUntkJMRn2h1LRsqwgIzKtWvAQ7IvUtQPC0xyTQs86rezRtqW986lwgNNGJ uU2L2ehmNbvhDVbc4Whe8ieSd20jJkz4sfcSxhJaClOKU2PnctujqElzN8zgkCVFCs2Vwx ymk0qc0P2mGoGUcZ6kFzZEuD84PfXzOqmOAm/5zko7pR8dHMqIj4Gfnq9RbujmCdPC7xfP CR/swfqICUK2wpX05o/q1hJgBgwhdmi/yF1FXgQOvAkqMTcHSSfS/aQFvvKHNp8HctdKNm phktVcGbWsLo/8TepGjakFoFOXRNJUVXyY8zp8U4QeX7PgtCGqeIun87lcPdTg== Date: Tue, 21 Apr 2026 16:56:32 +0200 (CEST) From: Henrik TJ To: PostgreSQL Hackers Subject: Re: Fix memory leak in postmasterMain In-Reply-To: Message-ID: <3e890874-8204-e1c2-8def-3a02cbad2232@0x48.dk> References: MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="-1463761151-1015193395-1776783288=:132942" Content-ID: <0745ca3a-1808-c320-7d45-245e07b24d41@0x48.dk> X-GND-Sasl: henrik@0x48.dk X-GND-Cause: dmFkZTGWI2TTmfeXG6qjNooePg1FuUcNYXe767BI19MzwX+oCXFOMbubhltJ+0RBrHDOAFMbf1YfzbVKDPknPxoULhc0A3gfgonddsD87SAEmRRAJeEaT8VPSHP1Dz281AwUeaKxVzr+Tit2wq9eE/9gBtHjzAeufs+SRXgtVlW3SiNgBr7M1NgLYRG+nOY5MWNBs74e3I7wJTfx/6ZAydhizICy+iJr2sAHkdIVzwv9HE3Dtd9viVf3dK0d20Ji4zBNsht3QPbcuqUI9NUypKg8M2BO1sfXAgNNto0dK1nTGUYWYMtlEXg+jtfGqGyYXORZZ9TXJ5fJVKZqFIdniot4Ns2ig/r7DIV6T8xERonkSlCTlm563RIfZTtnRwFC6V8YDBwMC2JvWo7e2cN2BhVekNoQ/vviXSBtmlUIzfs7HJdI6CvOduvQND53PWNUzjS+ayI7XcrYK/z7DjVFdS68pqKVZkvZlAz5QM3Z9ADg9Py2lhVpxR4BP75Gfo+ch+zLjToCQFYOnwlZr3OKv35d8nAIaj+wH9mv6VbSLraGU+s6yw/fAz5549P3OACbLz3eBCi1u/KmrC2ebOkSapVyWJP/SsPFaUIMTjzluAwyrDysIxROP8MWquop0v8Z3HNmU9MzSm2MpLWWvtI6pR23gw3RCKVYch8V2Rvwx513vqhOdA X-GND-State: clean X-GND-Score: -100 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463761151-1015193395-1776783288=:132942 Content-Type: text/plain; CHARSET=US-ASCII; format=flowed Content-ID: 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 ---1463761151-1015193395-1776783288=:132942 Content-Type: text/plain; CHARSET=US-ASCII; NAME=v2-0001-Fix-userDoption-not-getting-freed-in-postmaster.patch Content-Transfer-Encoding: BASE64 Content-ID: <66ffb501-037f-e19b-0ae1-a2a64fdc33d2@0x48.dk> Content-Description: Content-Disposition: ATTACHMENT; FILENAME=v2-0001-Fix-userDoption-not-getting-freed-in-postmaster.patch RnJvbSA0OTNhMDc1NjA4MmFjYWM0OGNiMDJlYTRmYmJlNGM4ZjRjMzRiMGI3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogSGVucmlrIFRKIDxo ZW5yaWtAMHg0OC5kaz4NCkRhdGU6IFNhdCwgMTggQXByIDIwMjYgMTY6MjA6 MzEgKzAyMDANClN1YmplY3Q6IFtQQVRDSF0gRml4IHVzZXJEb3B0aW9uIG5v dCBnZXR0aW5nIGZyZWVkIGluIHBvc3RtYXN0ZXINCg0KLS0tDQogc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgfCAyICsrDQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYw0KaW5kZXggOTBjN2M0NTI4ZTgu LjQ3NmU4NzAwMWYxIDEwMDY0NA0KLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9wb3N0bWFzdGVyLmMNCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvcG9zdG1hc3Rlci5jDQpAQCAtNzg5LDYgKzc4OSw4IEBAIFBvc3RtYXN0 ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQogCSAqLw0KIAlpZiAo IVNlbGVjdENvbmZpZ0ZpbGVzKHVzZXJEb3B0aW9uLCBwcm9nbmFtZSkpDQog CQlFeGl0UG9zdG1hc3RlcigyKTsNCisJaWYgKHVzZXJEb3B0aW9uICE9IE5V TEwpDQorCQlmcmVlKHVzZXJEb3B0aW9uKTsNCiANCiAJaWYgKG91dHB1dF9j b25maWdfdmFyaWFibGUgIT0gTlVMTCkNCiAJew0KLS0gDQoyLjUzLjANCg0K ---1463761151-1015193395-1776783288=:132942--