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 1vlkl2-003XLP-02 for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jan 2026 09:25:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vlkl0-0042Ky-0F for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jan 2026 09:25:38 +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 1vlkkz-0042Ko-2Y for pgsql-hackers@lists.postgresql.org; Fri, 30 Jan 2026 09:25:38 +0000 Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vlkky-00000000AhH-1gXs for pgsql-hackers@lists.postgresql.org; Fri, 30 Jan 2026 09:25:38 +0000 Received: by mail-qt1-x82c.google.com with SMTP id d75a77b69052e-50331ac1fedso22663401cf.0 for ; Fri, 30 Jan 2026 01:25:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769765135; cv=none; d=google.com; s=arc-20240605; b=HCFw1+DOQ3m7ftTVmBfLRvubDD0d+c2TzVUPRJ1JowBkCn2iLx5BMs8nZ/w0HO/8bB UiaYl03Lh0QOYDJ4PZeF4ROX67TCRZnODzzbddXbrRLnovDbIGoK1VqaXYXSUrvqDhg3 sndruDVmju0A3xM+efF/SkvGrfJo8fhEaH8+HnzVVs1rxZy3PjZ2W/wJrsITn3kRf41H MnkcEbV5LQYunNKXw9N5M/XohaXb2Ea+AxHely0E5Cdv6tt/yoGWlki8oa4eo5WPM4mO WyNtkMF6p3Yi4aPeDnnhY2B2MazIBadgDEjmEtqicdqiztYT5xge2cKo6QLP8mYR0LIu oR2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=hvPUKsZuXHb1t20Yiwcy1UYzGp6ju0QFkz4mq3/Appg=; fh=8nYz6uTaE/J8Rmqx7lbWG57b7ZMGs1RmT+RbG81wzvQ=; b=EitM6M/2HUb9kWdBcVYgIqe8RZOFO31nxpZdnKqivFaEWJdjAUZSFLQboa+/LJfE6N nTPrTy1hWWLSHlTvdhIP+s7dvIYEbEDoeg7Rug24fHsmXdV9YzelTfX5hTidS1Sz1I/d R++U/1GKecYf9p+kOzieFn0BhSxdlE0R23RTHedU1RYKV/v4vfr9413iC9vRM0JK+1dM HZzGlxRMLZb4VzrlwJ9CahePtvJxgm5uy221TOfuKWKUYv0z+K3n3DWk7YeCuFJioTT8 3stZCl2okoZ2uAuXhSmF1SwFCdvVOAJCl78Cn+24hE9WCeQAodTWxqy9LmY7aQBcafNY OujA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769765135; x=1770369935; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=hvPUKsZuXHb1t20Yiwcy1UYzGp6ju0QFkz4mq3/Appg=; b=BBBihxGuVhib1/iCqRBkO6Ey7O2R2CD1CjWKwrk2NN9elC/zOF+wIIm7AIUQvfAdci eMCof4Q8htYwsid/9KCn1WuNa7PXA+7B7u18r/Vuxmlce5v9CbZjU45/sbSqlOP5jke3 a5yEF+2saZqXq7ICTdHcB1h6SzrQemx3hZbuTYxL4WSiH5B6vv+CMOc/ajxwXEzRb1L1 B961qV5PRkCBzcU9PxPY/RDgoOzPeeAQNLhqBgDf14sgWH8EISzGVbg/nwz6pLE6PzZ5 u+7t5JcmhJRix5NDERM7mJ3Hy3UG29C/c6I+hbD9Kg/uyVBMO625qXMhvqCkAhYkjSb6 epfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769765135; x=1770369935; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hvPUKsZuXHb1t20Yiwcy1UYzGp6ju0QFkz4mq3/Appg=; b=ViBcg3entBD2UtHeQ9M3jBrAlPSJ+SiQ5O8eEIu9vouZ/zYALLNY6lIv7fCu/p5Q+9 r5lt7mE9Pl7nW55nIdYBQItE9lpPRlvg/WO2mko9CSoBD8Tt4kRmzMaBTY+JhGuVXy2d h546oKtdH/rEI+DI3xqMH3jVhA4bJTQV9r3voM0O+4OwFrTNQKSz+rlcj04+4akage0k X7Xl3QOOEHZH08wmmSsJtw9mKvbFe9MgCJbBVkZNNaT+TaDGefR3+YTtjf+KOYqRXIS0 dAh/VtyRI0JM470oOWWS1wmO2oXeRomumfdMAsk175L07DK9+wmDwv+AWsmdGWej1it4 Rssw== X-Forwarded-Encrypted: i=1; AJvYcCXxvGdMWuiXTWiFyDspQRQiU7C4OEs71U+U98r6Z41GlqP49hjd2iZ032tM5wJtmAYy8ySqLtKy2KPyl9Qg@lists.postgresql.org X-Gm-Message-State: AOJu0YxrJ7y8zcYfQhBlQyQcyTj1Yy1ZKzHU2Y+gpQB+hzu1urPmrP6B oOqDEFe/+waEcIOFfbRvwwO/3GvBFZ4nPHvk94uoJofEP1fDAe42ZEpnQW3yeCUy34TR2AWNcke uBzRAfQVuoiYirLAprvD8cUvgNAlK0Wo= X-Gm-Gg: AZuq6aIIRaOEEUv+lIeDoFxQTroVx7Dq4lo9Fnt8NYSGJhuWz56vcov29UI8/RbyUZL Q9R4siNFIFd16tHyyU77TmQEMmaB3Ca4b/BRnPnmVUJVZrGj6RHGzAIRSXqp8UvNLOaBvMc0m7P DdZGrzjik7xKdyzlPzvbPU6ITM3UFhenmWjW2lHCyPoNB2CQL+mAniIjla0kRYfxusGNH7fbuHN XMAPGeSDxXz4LEG1Ha1LYwg+oFVEjs26NUVZz3n8ScM+mwJPkWPpM/78ap8dC3INNvjXUQqZX0F hJw8Ra/zHVEtmlC2/pS10NVuHTUkx/S7dx6h7zMbS3hq2C2BnD6Pr7cghK4b4qVFkR49 X-Received: by 2002:a05:622a:614:b0:501:47f7:1a96 with SMTP id d75a77b69052e-505d21a4f59mr30055941cf.34.1769765135023; Fri, 30 Jan 2026 01:25:35 -0800 (PST) MIME-Version: 1.0 References: <6BC5DBAB-6084-4BB8-8450-52E9648AB021@gmail.com> <7F5BCD7A-764D-4D8D-8E27-6F2CAAEA1CEE@gmail.com> <4379FDA3-9446-4E2C-9C15-32EFE8D4F31B@yandex-team.ru> <7ib3sa55sapwjlaz4sijbiq7iezna27kjvvvar4dpgkmadml6t@gfpkkwmdnepx> <2b09fba6-6b71-497a-96ef-a6947fcc39f6@gmail.com> In-Reply-To: From: Kirill Reshke Date: Fri, 30 Jan 2026 14:25:17 +0500 X-Gm-Features: AZwV_QhIipWT_Nrd8K8-OHyKygpm62f-V8rNjW0nri_5eh9ADviY_bppCfjxWX4 Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Melanie Plageman Cc: Alexander Lakhin , Andres Freund , Andrey Borodin , Chao Li , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Thu, 29 Jan 2026 at 20:16, Melanie Plageman wrote: > > On Thu, Jan 29, 2026 at 8:39=E2=80=AFAM Kirill Reshke wrote: > > > > Thanks Alexander! > > This is a good and detailed report, I was able to reproduce this. > > Thanks to both of you for looking into it! > > > I have added some logs to my copy of postgres with your patch and I > > think problem causing this test to fail is this sequence: > > > > 1) Autovacuum starts, does its deeds, and acquiring xid =3D 118518 > > So, in this scenario, is the issue that autovacuum runs before vacuum > freeze? If so, we can change the table DDL to: > > create table test_vac_unmodified_heap(a int) with (autovacuum_enabled =3D= false); > > which would prevent the autovacuum from running. > > Unless there is some other way for one of the other tests to hold > OldestXmin back to before the xid of the insert. But I don't see how. > > > 2) insert into test_vac_unmodified_heap values (1); executes and > > commits with xid =3D 118519 (from my log) > > 3) vacuum freeze starts and computes cutoff xid =3D 118518, because > > oldest xmin is 118518 from (1) > > > > *and we cannot freeze tuple* > > - Melanie Sorry, I messed up my previous email. > create table test_vac_unmodified_heap(a int) with (autovacuum_enabled =3D= false); Yes I did try this, but it does not help, because autovacuum runs on catalog relations, still causing fail. We cannot disable autovac globally in regression suite, so I propose to changes this to TAp test --=20 Best regards, Kirill Reshke