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 1w657v-003vvk-0i for pgsql-bugs@arkaria.postgresql.org; Fri, 27 Mar 2026 11:13:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w657t-009KwM-2R for pgsql-bugs@arkaria.postgresql.org; Fri, 27 Mar 2026 11:13:18 +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 1w657t-009Kw8-1G for pgsql-bugs@lists.postgresql.org; Fri, 27 Mar 2026 11:13:17 +0000 Received: from lahtoruutu.iki.fi ([2a0b:5c81:1c1::37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w657r-00000001Swc-1MOA for pgsql-bugs@lists.postgresql.org; Fri, 27 Mar 2026 11:13:17 +0000 Received: from [10.0.2.15] (unknown [130.41.208.2]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4fhygB3bwJz49Px5; Fri, 27 Mar 2026 13:13:10 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1774609991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5LXrab7V/87LEsEnaGPVzwlelOEv007mFinY5JqYUzs=; b=NyCSgrcxdo6WnPEX/1BlEIYxQW2bld2HAHUPB6BFuRipJXDTFwyh7RQh4Bm3sg4qlH/q69 tZX86RngXyiPvwOCsrHX0tAAY2xvz65Z1LtAYR4nsgZItIcovy1v04YtfeS7oSuFf3w/j0 fKHBs7hgUr7jYKz00AToile8bwmDMJQlDjOOjXytlE981Plg/uzYapqz3Mrqz2JiqwO8m2 x6eCGsC+RWQ3eMWHSUbR6W8+NzJas4uD6rG7KEwRzEujc9qVZzPCW/JUjcGpfIn6wx6e3b LOUFMDXvA2AG2lWpSI+U/ZY3uCnos1ooqPDOOvvi+jyrrJXD8pADF9fYT145iQ== ARC-Seal: i=1; a=rsa-sha256; d=iki.fi; s=lahtoruutu; cv=none; t=1774609991; b=cbc3EdCYI5fwLR+1P1l8rmwUTK6IAUfXiwf88+iK4ar3DvDJTxZilCuRFZl0pWDmIjNATb N6zydEod6eIbothKKGujsIljr9Pa5CAJXwWWCUk6Lh9EW/p4fV+Udn9riYUibmjfzLtr1b 9Q5lFL9tKhg9SpNzYBzFPRU8IxV3PMgSPlRZM2YfwGd6rPlGaI+5QR51cqRD+t4Tf81Pgs FNhM4YDE5qC5/DCfvtxx+e4u+XeIhftcKoVIL5M5EddOx67OmGEhi1575ukLmLPK+HAFUM zHmdcYEx2wO6X/f8C62MxQcqn2iao2PuWl/fZH3UO2lnnsWiuJ9IL0NXelAfUQ== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1774609991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5LXrab7V/87LEsEnaGPVzwlelOEv007mFinY5JqYUzs=; b=tEooRXlOio3cKfkYG91RsR0EpIbf6nV01i6u75XLnTcpMwLcpSOI4yBJSvhbFFbvASWRvf Seoji6/fF13RcIeQQRfMiI1Z8VfP0x4IAyslOxe59LWe2VxAx0yY0EcOHI5XN40CCgIKLW RyuXDBHmEK8ltd65UlsTVM/sCNCWFMjQB7x39foTBdtX2J8++QWVzkd2gcq00n8iB3dTt0 KqwWaQ9Qe9GVrIAnDt02aW81P0yBdXSBqJ2a47fruo9u9tgtuL55PMt6ViUbLZLaxaSSDU ib3fibEuXwIr246QKcorbjkR1JgA5IYSMbAP2WgHdIcl47Ipv6QP8+7dkpbSxA== Message-ID: <2ca9a413-fe96-4c96-9781-2e85d876afd1@iki.fi> Date: Fri, 27 Mar 2026 13:13:09 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Memory leak in pg_stat_statements when qtext file contains invalid encoding To: Daniel Gustafsson Cc: Lukas Fittl , Gaurav Singh , pgsql-bugs@lists.postgresql.org References: <178e0d90-26d9-4c3a-9448-2f64f0d35dc8@iki.fi> <56D5EAF1-1636-45EC-97FB-3A08260417D2@yesql.se> Content-Language: en-US From: Heikki Linnakangas In-Reply-To: <56D5EAF1-1636-45EC-97FB-3A08260417D2@yesql.se> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 27/03/2026 11:05, Daniel Gustafsson wrote: >> On 27 Mar 2026, at 09:59, Heikki Linnakangas wrote: > >> Hmm, perhaps. But there's a simpler, less invasive fix. When that code was written, we didn't have MCXT_ALLOC_HUGE nor MCXT_ALLOC_NO_OOM. Now that we do, we can just use palloc_extended(MCXT_ALLOC_HUGE | MCXT_ALLOC_NO_OOM) instead of raw malloc(). Per attached. > > LGTM. Committed, thanks! Here's one way to reproduce the invalid encoding error without artificially corrupting the file: -- Run a query with a non-latin character in it. (This needs to be run in UTF-8 database.) psql postgres -c 'select g as "omega Ω col" from generate_series(1, 1) g;' -- Create a database with latin1 encoding psql postgres -c "create database latindb encoding 'latin1' lc_ctype='C' lc_collate='C' template template0" -- check pg_stat_statements() from the latin1 database -- This fails with encoding conversion error. PATH=~/pgsql.fsmfork/bin/ psql latindb -c "create extension pg_stat_statements; select * from pg_stat_statements" If you repeat the erroring "select * from pg_stat_statements" in latindb many times, you can see the memory usage grow without this fix. - Heikki