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 1wCmc9-002J38-0N for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Apr 2026 22:52:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wCmc7-00DOgG-0P for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Apr 2026 22:52:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wCmc6-00DOg7-1r for pgsql-hackers@lists.postgresql.org; Tue, 14 Apr 2026 22:52:11 +0000 Received: from mail-qk1-x743.google.com ([2607:f8b0:4864:20::743]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wCmc4-000000012lU-2igW for pgsql-hackers@lists.postgresql.org; Tue, 14 Apr 2026 22:52:10 +0000 Received: by mail-qk1-x743.google.com with SMTP id af79cd13be357-8d68f702851so922298285a.0 for ; Tue, 14 Apr 2026 15:52:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20251104.gappssmtp.com; s=20251104; t=1776207128; x=1776811928; darn=lists.postgresql.org; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=xOtSfejlaZDixRB5yyBJfhkXt/PATdXl97Jzufe3wg8=; b=JB3/Z0K6byX7jTvj1NyPFTeIhRqVSEIygCVvYQDulZVJm0vZtq4FdT0aq0JLBZS5HH /IYDqZdgbj8uwvXbNke8EGIQ6kPpYhLTymSFiGISnmcWfgXFJYuxUPi6R+6zxRCc5aps NOxXesfv5C1STtm8GowuefJSk8OURmcyYDCoiu6z3xkD31lAEbZfqFxOUu8XjrbkVqXn LDdrABc5km0dGcZNOQYLWZIekZ9JjQnvyQEM3ljK3BitlhmI+h42zZWhPlJCnOnep9pq +jJ+fvpxztDHe0uVZtoFWZ6Gmrlr9QvZ1fSJ4mjb07rA92c2R6e/nIl62p8gegE5y76s iWCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776207128; x=1776811928; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=xOtSfejlaZDixRB5yyBJfhkXt/PATdXl97Jzufe3wg8=; b=hGhxj1Z/0Nyh1EmSJNftLZl4lgosdQFHuiviRXpv+Wxlj9W2Taf9QZdfl5qZYZ9ysD lvdl0mLQgYQO+HJVPVO1zajfvAUr4vXjhDi18djvYG7dwEc1C4bQ+x6NUsa9Jsoe8Ljq oJPxr+bWiwUe9LifYoQfb8IrL1bLY3yfFwrI6Oq/0ygLt5f9OLbqSgwu2JkMNe+wZQaV 7YvsIBroTF37mZNJcz4tJqyxtcvGu6PVYyxBxyJJ8+2BZM/nr4jVrlEZJ6T6dTybSIiq 251CmAMqFylu05wecqtT9su77HXdq4E0BtCXQHg8p7/0C/W/WNfPG4kajdrpszq7vRvr 7MWQ== X-Forwarded-Encrypted: i=1; AFNElJ8Mk20i/4icPe2xijg2Ls5zHCiRUUyFqSGtZ+iVQBtcUv8VgbDaa3VLRBDZbfWek90u7bRdW63OkUzrNJVs@lists.postgresql.org X-Gm-Message-State: AOJu0YwztWn5UFTv8DSenkmkHZZYLgNfzJaDkCzVaxU6y2fQHkF87RY4 4bXZBIHXJNe1Q+uP6U4+dZ8uBpv8FhbcGasvUD8g8FLP1EZRjFwvTyxEZudFfxQ3A94= X-Gm-Gg: AeBDietl1LtlOo07K0vaYtI0SxCB37smTwshp9cPzJ1JMzKxjDtr/Qnm7S96nhUMXN6 1ZvjXUZaGXbVo6qXS8fHVUjafJ8030P2zTxy1UKldWrOP81C5hmsX5rsHJ9IpOdyI5tadLv2eER CCikmRWNRPFQjdO4T87BnM7Tuzr9SrwovEsSS8/hngNMzosRKaxaPdHaWwZ8P2gW8vnx7KVMUJu s2nM6XaS+MP4NhR0Vb8SZ1ClOx6qlW+tkmBI+DPR6sAm2RgU6Z3W2Zs16/hfJLVQzQRftbeUgdC oUyRBLF6dbqkc45Rpxno9vEHBK86ewev4VUFtOIOapA55NWtsGjL2hI+dh3Esd3vcybpyms5gbG uIUR4t18p+3vMpwULGQF60AHDo3q4iNDRJ5BopQf2BKfINkc97nlw1etqYkJef/RQGJnqN1l0B3 UH5Byvku7FQ/CgcGo++kRrlrrVAH+slAzGe2JLv3Xvzemh4KgFZcw= X-Received: by 2002:a05:620a:7018:b0:8cf:cf2c:e021 with SMTP id af79cd13be357-8ddcd024858mr2801084885a.7.1776207128210; Tue, 14 Apr 2026 15:52:08 -0700 (PDT) Received: from ?IPV6:2605:a601:a6b0:500::1cb? ([2605:a601:a6b0:500::1cb]) by smtp.googlemail.com with ESMTPSA id af79cd13be357-8ddb6372790sm1228765885a.12.2026.04.14.15.52.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Apr 2026 15:52:06 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------xz3YH1noITJIPEbFGp4EwFZT" Message-ID: <786bceca-84c4-4a83-9c30-3ce49d81b274@dunslane.net> Date: Tue, 14 Apr 2026 18:52:04 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: pg_get__*_ddl consolidation To: SATYANARAYANA NARLAPURAM , Jeff Davis Cc: "David G. Johnston" , Japin Li , Zsolt Parragi , Euler Taveira , =?UTF-8?Q?=C3=81lvaro_Herrera?= , PostgreSQL Hackers References: <202603201311.yhtqmvektawm@alvherre.pgsql> <8ec9b67d-939e-4b22-8d56-a5129f92d32d@app.fastmail.com> <555cdee4-c024-4872-9d96-82ef4216239c@dunslane.net> <4efc426cde8eed9734af3a4552c3be29188f3661.camel@j-davis.com> From: Andrew Dunstan Content-Language: en-US Autocrypt: addr=andrew@dunslane.net; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAlwQTAQgAQQIbAwIX gAIZAQULCQgHAwUVCgkICwUWAgMBAAIeBRYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNGd BQkdEO8nAAoJEJn6f8tZ/DuBq74H/jkTR4Zi3stbw+xC7v2u3QozssK7MYPL2AsVfh7OealS h182fiWXpfvmmAB7WUHbhk9GC2RAOnHI/2d2jgKaMLAHsGYOT0YopTVIwRY43fCw/mK67yxc wmDcX+zyKfLaivNbf5A7QPLNwda98bEAMSJ8Sn652Uc6cA8t3uKGsVzbRBQOoYzjgvBCfSrE 9ql3PDNg0l4BfAqabd2f70ZUm9VAMEPrgv/v2xI7M2XiL4g5BVmqLCOwxLM8RMCotCuoweUr VO43DeBCIDwLxotMJKvGWDjBzQYlU1NPUAtNcz/gN9ITUe1VUGjyvGj4u1lxBOcQQUw7l1+T 5moZ4iZxXzvOwE0ETspYWQEIANGc4zQULOxhbqO2dyD51YhqCNRmm9oKWaqf+wmW4tpDe/VV cxAnNizd4LWCHfzpb5cHAtGkOPePMfzWVf6nvdF7d3eglbtf59+zG7O7llV0xSSoFiieQBsr GvqDInXYX/4mRRXMtyhM353/tixC9RWLs1oofyYmCPPXXY7h9R7en3B8BoVrRFcdzlIY/NFN hFGW/9dkEiGjgna2Rk6e15kln4ZvFBWUg23p93w/pqXcxY6+k/8TEk+C4R+M6w7o2PLGOjdZ +kPiUcw5H85zf/yZJwQXzisXaNduwWB6Vads9YC9dj6kPR1c4VGRqAaYL++LAEOqrlvm2Tvq QqZRtnEAEQEAAcLAfAQYAQgAJgIbDBYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNI2BQkd EODdAAoJEJn6f8tZ/DuBfw0IAKTsfD40teP/pp+bsLLMSxPXUYrrprTj7WFB5v61p6dkpSr/ qXmMlyahdxQFaPmfVgVirB1Vk/kHiWNnnGjfUV9nB2Zg9LI0Xb9/ts3LsUiRWXzG3tkMY6XL vsVOxW4XFRND9l2q+WW93aZ1DZl+fqWfYgMvsusFRhmGFOKTRfKPta2Pkv+AhA24N4+PrR5p bU4k2MO8PAGiK8eaYKGFG1bHKuAvoDoF7WXJ3FHxuWqLnKEt4dfOLm5pAe3zq1Lt6q8azT9i QWGpSAK5vQUWQHBHpiDjdPeqKZ6HiAXIIKfSmb+jrvXBqoP+D6/K7rUjG2aXiRtTIAXms9sm VRu7cmw= In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------xz3YH1noITJIPEbFGp4EwFZT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2026-04-13 Mo 3:41 PM, SATYANARAYANA NARLAPURAM wrote: > Hi, > > On Fri, Apr 10, 2026 at 1:03 PM Jeff Davis wrote: > > On Sun, 2026-04-05 at 11:06 -0400, Andrew Dunstan wrote: > > Pushed. I have moved the remaining get_*_ddl items to PG20-1 > > The line: > >   role_settings = DatumGetArrayTypeP(datum); > > should be DatumGetArrayTypePCopy(), because it's being pfree()d later. > The existing code will sometimes make a copy and sometimes not, e.g.: > >   -- settings are contrived to make the datum inline >   CREATE USER u1; >   ALTER ROLE u1 SET search_path = 'public, pg_catalog, pg_temp'; >   ALTER ROLE u1 SET work_mem='64MB'; >   ALTER ROLE u1 SET statement_timeout='30s'; >   ALTER ROLE u1 SET lock_timeout='10s'; >   ALTER ROLE u1 SET idle_in_transaction_session_timeout = '60s'; >   SELECT pg_get_role_ddl('u1'); >   ERROR:  pfree called with invalid pointer 0x7986dd0c7cc8 (header > 0x0000400600000000) > > > Yes, it appears to be a bug. Attached a patch to fix this. Tested with > the > attached patch and don't see server crashing after that. > > Thanks, pushed. cheers andrew -- Andrew Dunstan EDB:https://www.enterprisedb.com --------------xz3YH1noITJIPEbFGp4EwFZT Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


On 2026-04-13 Mo 3:41 PM, SATYANARAYANA NARLAPURAM wrote:
Hi,

On Fri, Apr 10, 2026 at 1:03 PM Jeff Davis <pgsql@j-davis.com> wrote:
On Sun, 2026-04-05 at 11:06 -0400, Andrew Dunstan wrote:
> Pushed. I have moved the remaining get_*_ddl items to PG20-1

The line:

  role_settings = DatumGetArrayTypeP(datum);

should be DatumGetArrayTypePCopy(), because it's being pfree()d later.
The existing code will sometimes make a copy and sometimes not, e.g.:

  -- settings are contrived to make the datum inline
  CREATE USER u1;
  ALTER ROLE u1 SET search_path = 'public, pg_catalog, pg_temp';
  ALTER ROLE u1 SET work_mem='64MB';
  ALTER ROLE u1 SET statement_timeout='30s';
  ALTER ROLE u1 SET lock_timeout='10s';
  ALTER ROLE u1 SET idle_in_transaction_session_timeout = '60s';
  SELECT pg_get_role_ddl('u1');
  ERROR:  pfree called with invalid pointer 0x7986dd0c7cc8 (header
0x0000400600000000)

Yes, it appears to be a bug. Attached a patch to fix this. Tested with the 
attached patch and don't see server crashing after that.



Thanks, pushed.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com
--------------xz3YH1noITJIPEbFGp4EwFZT--