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.94.2) (envelope-from ) id 1tyx94-00DEmS-6n for pgsql-committers@arkaria.postgresql.org; Sun, 30 Mar 2025 18:12:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tyx92-00C7jk-LY for pgsql-committers@arkaria.postgresql.org; Sun, 30 Mar 2025 18:12:28 +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.94.2) (envelope-from ) id 1tyx92-00C7jb-3q for pgsql-committers@lists.postgresql.org; Sun, 30 Mar 2025 18:12:28 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tyx8z-0025o4-15 for pgsql-committers@lists.postgresql.org; Sun, 30 Mar 2025 18:12:27 +0000 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-223fb0f619dso72645465ad.1 for ; Sun, 30 Mar 2025 11:12:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1743358343; x=1743963143; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=XgU91y5KApS2LsLY5HRdYAfQDCkMA9iR8xIBV3STtNo=; b=ud/AkP+POutgZxlNfgC0WJgZvPQ/4kMdHLok9Lvhy6nwUWsIXLdb5wBUjwxlpOanKh CLVqdib9Nao6gBZLJu/k9mRWIpR2XDvwDX8lJw88wcYX7QYg2upR2zWQt9uMkkSVkMYV WC5viFxphEipRcxbEa/n4GfP+HNis8cJzrvkT2Lg0eT68xpbsBKu/WSwu1bGs5yqCgYd y1WLF+s4gGUsxf1DwhASD2kaqi2q9f59b+4l9tnnTuBbh5n5Pc3fHpCCwUvGqE3/CFtE xAA9ZoDOl3oQUJmva1rpduXZ0xKto0YBqX3P+TQ0gomXlLChqjTxlJJEQYDc5SjTzJkl FnVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743358343; x=1743963143; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XgU91y5KApS2LsLY5HRdYAfQDCkMA9iR8xIBV3STtNo=; b=sBHaQauEDfUncWe0ZsohHyKhx/0d/JUUocAlMEUvJ5hF/ETeykpgEeMjo0BIx4llKh fE9WEaqs6PZz5S6Dfgx0y+8qKp/8oNTcgiKYal4ICQe7KEfc4pT7j91qNT2u3UXu/xbW UXLSVcNp052QQh2o2boAtua+ApS9qSs6TEP+8J8nKElwQjSHYwlNRvhh4eVQl+UGKWn3 TQLH+94wUgWnHb5JpmSzKMEVskjJITQdiPsiOZNN34AzJO13GB+OQhkDrQX+BioLZ+jS 8bg33Q6GS2DaEnMGC45a70YdWsRF76IfA79RLf+9kcpyhaNdzKgxJtbJh90s9heqID90 eSfg== X-Gm-Message-State: AOJu0Yxh/vEB4fNqLByWuR+nUcQ/3qgdY5E63DX++JAZK4iWqDjDKd6G Qg2oJEMO6mx55X1U+I842RCNUYCsVkfIrgnzLPjFYRLuExJOpx8XR1X8340dG1zrn7FYPnpU1mE = X-Gm-Gg: ASbGncsJ6C6oIx9LwLVJq5DGf2LXIl5bbXQS/t2WoKNqxlyMfvJzIAXt1rfEvg+G8Ko +OHfTsh5dO5e611rIEqWrhQC/5ei6U623IxYbOz1o+jdNLGN02JgvZkcYTy7vYb9lxmqap3Qi9m TKUhjhA1l1Yo9V7C/Z5MFJ39B0jOnz7RLKpen2t9SSP5RaQ7qWDwJhVuMzRqvA4USapqZmLcDuh fNrhFtDwcbFAz7CJp98TUsvjjGFtpzzAFNsQk4+yDATTI5cg8kuF30FJ/64HfDNklhpJSOkv1+I QdCoLyATaEbA7WoEguv7AV+ks8tsYRDMG/Ej3Ahb6Nsq8+V4xlc0CxTO7Y2npD1RTOMPfusZW7k T60xSazUprKYpMg== X-Google-Smtp-Source: AGHT+IH1u0Xw1a0oevHcaPVKu4jYcUtyi+qSnH7lPkQxkfMYiTQgsOCbGh24lWj4L0lndZRkS3zaAA== X-Received: by 2002:a05:6a00:2408:b0:736:9e40:13b1 with SMTP id d2e1a72fcca58-739804684d8mr8265831b3a.23.1743358342815; Sun, 30 Mar 2025 11:12:22 -0700 (PDT) Received: from ?IPv6:2601:642:4c01:4837:ccf6:ac8c:5027:3d3b? ([2601:642:4c01:4837:ccf6:ac8c:5027:3d3b]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7397109d241sm5465803b3a.129.2025.03.30.11.12.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Mar 2025 11:12:21 -0700 (PDT) Message-ID: <8e540416ec3f0a5850264505bf4c72844d32176a.camel@j-davis.com> Subject: Re: pgsql: pg_upgrade: Fix inconsistency in memory freeing From: Jeff Davis To: Michael Paquier Cc: pgsql-committers@lists.postgresql.org Date: Sun, 30 Mar 2025 11:12:20 -0700 In-Reply-To: References: Content-Type: multipart/mixed; boundary="=-f6hy15iK9P7OE5ZuyX3v" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-f6hy15iK9P7OE5ZuyX3v Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 2025-03-30 at 07:03 +0900, Michael Paquier wrote: > Thanks for the report.=C2=A0 It would be possible to switch to a second > approach here, where we use pg_free() if we don't have a > locale->db_locale to make sure that the memory is freed in its > correct > context, like in the attached.=C2=A0 What do you think? Why pg_strdup() the "NULL" at all in that case? Usually I see that done so that there doesn't need to be a conditional when freeing, but here there's a conditional anyway. Perhaps something like the attached? > This test has been added in v16 via 9637badd9f92, with the buildfarm > not complaining.=C2=A0 Could it be possible to improve the situation so a= s > we would know about 002_pg_upgrade.pl failing for such cross-upgrades > like what you are doing here? Ideally the buildfarm would do cross-version upgrades the same way as 002_pg_upgrade.pl, in which case the test would have failed in the buildfarm. But as it is, the only way to test the cross-version upgrades in 002_pg_upgrade.pl is to initiate them manually by setting olddump/oldinstall. There are some ways that the buildfarm test is better, for example it can go back more versions successfully. I'm not sure what all of the reasons are, though. Regards, Jeff Davis --=-f6hy15iK9P7OE5ZuyX3v Content-Disposition: attachment; filename="0001-fixup.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-fixup.patch"; charset="UTF-8" RnJvbSA2NGI4OTUxODhjMTY0Nzk1ZTA0MTljNzY0NzBmYjhjMWFhNWJmZDA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBT dW4sIDMwIE1hciAyMDI1IDA5OjIyOjAzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gZml4dXAKCi0t LQogc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyB8IDE1ICsrKysrKysrKy0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuYwppbmRleCA5Mjk1ZTQ2YWVkMy4uNzJiNWE1ZmRlNWEgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuYwpAQCAtNDQxLDcgKzQ0MSw2IEBAIHNldF9sb2NhbGVfYW5kX2VuY29kaW5n KHZvaWQpCiAJY2hhcgkgICAqZGF0Y29sbGF0ZV9saXRlcmFsOwogCWNoYXIJICAgKmRhdGN0eXBl X2xpdGVyYWw7CiAJY2hhcgkgICAqZGF0bG9jYWxlX2xpdGVyYWwgPSBOVUxMOwotCWNoYXIJICAg KmRhdGxvY2FsZV9zcmM7CiAJRGJMb2NhbGVJbmZvICpsb2NhbGUgPSBvbGRfY2x1c3Rlci50ZW1w bGF0ZTA7CiAKIAlwcmVwX3N0YXR1cygiU2V0dGluZyBsb2NhbGUgYW5kIGVuY29kaW5nIGZvciBu ZXcgY2x1c3RlciIpOwpAQCAtNDU1LDEwICs0NTQsMTMgQEAgc2V0X2xvY2FsZV9hbmRfZW5jb2Rp bmcodm9pZCkKIAlkYXRjdHlwZV9saXRlcmFsID0gUFFlc2NhcGVMaXRlcmFsKGNvbm5fbmV3X3Rl bXBsYXRlMSwKIAkJCQkJCQkJCSAgIGxvY2FsZS0+ZGJfY3R5cGUsCiAJCQkJCQkJCQkgICBzdHJs ZW4obG9jYWxlLT5kYl9jdHlwZSkpOwotCWRhdGxvY2FsZV9zcmMgPSBsb2NhbGUtPmRiX2xvY2Fs ZSA/IGxvY2FsZS0+ZGJfbG9jYWxlIDogIk5VTEwiOwotCWRhdGxvY2FsZV9saXRlcmFsID0gUFFl c2NhcGVMaXRlcmFsKGNvbm5fbmV3X3RlbXBsYXRlMSwKLQkJCQkJCQkJCQlkYXRsb2NhbGVfc3Jj LAotCQkJCQkJCQkJCXN0cmxlbihkYXRsb2NhbGVfc3JjKSk7CisKKwlpZiAobG9jYWxlLT5kYl9s b2NhbGUpCisJCWRhdGxvY2FsZV9saXRlcmFsID0gUFFlc2NhcGVMaXRlcmFsKGNvbm5fbmV3X3Rl bXBsYXRlMSwKKwkJCQkJCQkJCQkJbG9jYWxlLT5kYl9sb2NhbGUsCisJCQkJCQkJCQkJCXN0cmxl bihsb2NhbGUtPmRiX2xvY2FsZSkpOworCWVsc2UKKwkJZGF0bG9jYWxlX2xpdGVyYWwgPSAiTlVM TCI7CiAKIAkvKiB1cGRhdGUgdGVtcGxhdGUwIGluIG5ldyBjbHVzdGVyICovCiAJaWYgKEdFVF9N QUpPUl9WRVJTSU9OKG5ld19jbHVzdGVyLm1ham9yX3ZlcnNpb24pID49IDE3MDApCkBAIC01MDIs NyArNTA0LDggQEAgc2V0X2xvY2FsZV9hbmRfZW5jb2Rpbmcodm9pZCkKIAogCVBRZnJlZW1lbShk YXRjb2xsYXRlX2xpdGVyYWwpOwogCVBRZnJlZW1lbShkYXRjdHlwZV9saXRlcmFsKTsKLQlQUWZy ZWVtZW0oZGF0bG9jYWxlX2xpdGVyYWwpOworCWlmIChsb2NhbGUtPmRiX2xvY2FsZSkKKwkJUFFm cmVlbWVtKGRhdGxvY2FsZV9saXRlcmFsKTsKIAogCVBRZmluaXNoKGNvbm5fbmV3X3RlbXBsYXRl MSk7CiAKLS0gCjIuMzQuMQoK --=-f6hy15iK9P7OE5ZuyX3v--