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 1wheRV-000LTm-2W for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 02:24:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wheRU-00APqA-0b for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 02:24:48 +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 1wheRT-00APq1-2V for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 02:24:48 +0000 Received: from mail-oo1-xc30.google.com ([2607:f8b0:4864:20::c30]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wheRS-00000000FSc-2L9t for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 02:24:47 +0000 Received: by mail-oo1-xc30.google.com with SMTP id 006d021491bc7-6a168dc590cso965140eaf.0 for ; Wed, 08 Jul 2026 19:24:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783563886; cv=none; d=google.com; s=arc-20260327; b=ZWniwTrKj0ZVTuA/W5oftylmlJtIxs5rC7En4EJXIlf9gAVp6daSa+4hYt8bNdkk6W S02bYgRPV6cn5rli4DMtDL7dobSUqByv6dTNK/OR6CEF4K5pO4+mPsoaJffsoskSwGF5 ibbPyGFJK+4yJEk5yS043Cs4QUnSiaOFdeWeDsoV54Qpf9X8VrwOOy9jVxnRpXZIV1Me fO4qZ81jWdDbKfrwjEQ8252duc6G8dcSz11/hHdgoyeQQRtUpNS4gh/SblLQd6LNhBIs HDBNr8VoBcd6eDN1y7BheHPWt7mbSnf2euRYIisT1Y7FrTkU8zLfBAVSdoYX7quU+Wbg TFmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=MXkV0aILyZUONqH5wRXUkOShCSyim71/HDvXLY9dxkQ=; fh=dxJXJbLzq9Nah1LUdsj4QTuQ3JoDScd0wp1YHY64NXM=; b=ZY+fHRbSb7tfCMKniVpL4THAdEF4bNve2vLNrnlOdgd1Dza1wQRu+eq03GYaW4NdHg zfSssvp8GcNaREpffIYIP6kQRH4yTV2lHq4Ae52ZwhpFFdvjiIc4KP6HRN3ahMXQIfg5 7Qy8x1bIR2lisj1+0sVjZp3h6+uvC4zXm98kp9Yx/6RqGWHTfI1DlJ9nsAReJCOTHnOs Q41gMV7xhOSCfDnkBoynxS9p5isvQjE+5wKgURZSHVxn+hDlenAH4ZoLSaaYaSqHWuzP K5u8p4pMQZfbnLmyJk/TdIcjBikjzGUkhfI0pggJPiVc8puTQvPaC1AqV0YAXFQPNUM/ 9j7g==; 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=20251104; t=1783563886; x=1784168686; darn=lists.postgresql.org; h=content-type:to:subject:message-id:date:from:mime-version:from:to :cc:subject:date:message-id:reply-to:content-type; bh=MXkV0aILyZUONqH5wRXUkOShCSyim71/HDvXLY9dxkQ=; b=HtYl2Uqk23e+G53oT5UWMSDUAjgPo/EZOyg76BuHqrjfF7HMZdKPARThKGyOezbfJ6 s4b7YwUgRQt5aRp5KHnkSTaK7rz0qkEZ8+nS2gsfHybUx2qxUIighjZTfGTAZ7cJMqaz fsCi4UH6/0iskRHsFqgCvGITsP6FL0/RnJr0AGfamLxqvUw07/PEZFUKU71SxcgKAh6s v8QQ66nNNGCh4XT+AlPTGX0m8M9JWivw8PPsKsCAaLIj/CEEKhP0eqxkzjzYc1Kn3KjE JRZ1XZaOb43uJ1wOR9Cq+xM0VmOF5f3liF4Zwl4/7qiVO6+jBF+/KpZi0wEorsK/gkWv FO4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783563886; x=1784168686; h=content-type:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=MXkV0aILyZUONqH5wRXUkOShCSyim71/HDvXLY9dxkQ=; b=O+iXFpjglzeJu3+sY442S6UIVGQRp7PyricH/YRhsP7E30VaD3OgaB/rvoleAbRaCa YvgNXxCKUNJTBqR2frj7pioo8Byufb13kIOwfste6d8btQXZTt6mR+4WFjEsgP7rXvQX Eq4yzzTHPqZ2+wmtOjzOxgV/fNif3ZD/sARY+aX0I1jXmF/h/LQfMtOLkn4x72mFTTZ8 UnGfqMMCqd9OG7BYktMjFwOYjpCThS+aT4MUnLxraQZ395nI8MeBnYKfCYQjRwXGRNZD xGZViuckkLOgVVXjiz6na9z2hDdDW9zR/IF2pLtnig/9PSmlpE/4nWExyBePa/N6mppx GiaQ== X-Gm-Message-State: AOJu0YwP3nDpFt1FP5SdYIxqa3v12Yy+N49OZnpIgkqkB+na2tyrHo77 2WLLacYFZ79meycM260gfEZOGP6dopdg6fTRvfLOMU26KRg9lYDSvE/a6jfF+g6Ctla45nxmv5R pa6arqI6KJnQMUeFKr0TCUGCs64G2O9nN1oMH71w= X-Gm-Gg: AfdE7cnqu87WN5i88FWnzXii8aCH+kHW8hKWfNZrQF7dvfQ2mNz8k5NVMSxrT3qviZB R36xob+z6NVYeLwDQIa9+f1l3eWpRH/yd7m9Qfctbk2/dh59zDAEfMW6510+1XwliZ0kyvVav63 LsAJMnaugkY1fQ7Ao4d/2hXeWMdVbFs4LG2jMz/hjq0eTg+q4DF8rVjbobxBqalarS8FedwyP2i L55iymakr4sZMMcZa1AKmnt3MaqPrRvdkreBhRXS/dTKF/rOHmqAoWV53gj8CPM4foPro10dPWP SRPg8CGhKt+iAdinV6xZrZEHFYhN0LG4rI1QOKZn3Y6gwwxUYP3yl+RY+i57OP9iVb5U5t4r0GS G932MGZwwbxU= X-Received: by 2002:a05:6820:3089:b0:6a3:691d:66d4 with SMTP id 006d021491bc7-6a36d890ca1mr3562987eaf.17.1783563883567; Wed, 08 Jul 2026 19:24:43 -0700 (PDT) MIME-Version: 1.0 From: Fujii Masao Date: Thu, 9 Jul 2026 11:24:31 +0900 X-Gm-Features: AVVi8Cc_2JlFAJb52u7Yx64CTHy4GoXCGntVLKTxIvXYXCwtvd5AATRd5UD5yLg Message-ID: Subject: Fix data checksum processing for temp relations and dropped databases To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000b72a2f065624537d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b72a2f065624537d Content-Type: text/plain; charset="UTF-8" Hi, While reading the data checksum code, I found that BuildRelationList() filters out non-temporary relations without storage, but does not apply the same filtering to temporary relations. As a result, temporary relations without storage, such as temporary views, are included in the list of relations to wait for even though they are irrelevant to checksum processing. For example, enabling data checksums can unnecessarily wait for a long-lived session that owns only a temporary view. I think BuildRelationList() should exclude temporary relations without RELKIND_HAS_STORAGE(), matching the existing behavior for non-temporary relations. Attached patch implements this. Also there seems a small race condition. When enabling data checksums online, the launcher assigns the first worker to process the shared catalogs and prevents later workers from doing so. However, if that worker's database is dropped after it has been selected for processing but before checksum processing begins (a very small window), the worker fails without processing the shared catalogs, yet they are still marked as processed. As a result, later workers skip them, and checksum enabling can complete successfully even though the shared catalogs were never processed. To fix this, we should mark the shared catalogs as processed only after a worker completes successfully. Attached patch also implements this. Thoughts? Regards, -- Fujii Masao --000000000000b72a2f065624537d Content-Type: application/octet-stream; name="v1-0001-Fix-data-checksum-processing-for-temp-relations-a.patch" Content-Disposition: attachment; filename="v1-0001-Fix-data-checksum-processing-for-temp-relations-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrcvvfng0 RnJvbSA2MDk1Y2M0OWRjZTExZTg4ODQwZWQwYzk0MDcxYjEyNGExMTE0NDYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IFdlZCwgOCBKdWwgMjAyNiAyMzo1MjozOSArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIEZp eCBkYXRhIGNoZWNrc3VtIHByb2Nlc3NpbmcgZm9yIHRlbXAgcmVsYXRpb25zIGFuZAogZHJvcHBl ZCBkYXRhYmFzZXMKCldoZW4gYnVpbGRpbmcgdGhlIGxpc3Qgb2YgdGVtcG9yYXJ5IHJlbGF0aW9u cyB0byB3YWl0IGZvciwgdGhlIGNvZGUKcHJldmlvdXNseSBpbmNsdWRlZCB0ZW1wb3JhcnkgcmVs YXRpb25zIHdpdGhvdXQgc3RvcmFnZSwgc3VjaCBhcwp0ZW1wb3Jhcnkgdmlld3MsIGV2ZW4gdGhv dWdoIHRoZXkgYXJlIGlycmVsZXZhbnQgdG8gY2hlY2tzdW0KcHJvY2Vzc2luZy4gQXMgYSByZXN1 bHQsIGVuYWJsaW5nIGRhdGEgY2hlY2tzdW1zIGNvdWxkIHdhaXQgZm9yIGEKbG9uZy1saXZlZCBz ZXNzaW9uIHRoYXQgb3duZWQgb25seSBhIHRlbXBvcmFyeSB2aWV3LgoKVGhpcyBjb21taXQgZml4 ZXMgdGhlIGlzc3VlIGJ5IGZpbHRlcmluZyB0ZW1wb3JhcnkgcmVsYXRpb25zIHdpdGggc3RvcmFn ZQpvbmx5LCBtYXRjaGluZyB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgZm9yIG5vbi10ZW1wb3Jhcnkg cmVsYXRpb25zLgoKQWxzbywgd2hlbiBlbmFibGluZyBkYXRhIGNoZWNrc3VtcyBvbmxpbmUsIHRo ZSBsYXVuY2hlciBhc3NpZ25zIHRoZQpmaXJzdCB3b3JrZXIgdG8gcHJvY2VzcyBzaGFyZWQgY2F0 YWxvZ3MgYW5kIHByZXZlbnRzIGxhdGVyIHdvcmtlcnMgZnJvbQpkb2luZyBzby4gUHJldmlvdXNs eSwgaWYgdGhhdCB3b3JrZXIncyBkYXRhYmFzZSB3YXMgZHJvcHBlZCBhZnRlciBpdApoYWQgYmVl biBzZWxlY3RlZCBmb3IgcHJvY2Vzc2luZyBidXQgYmVmb3JlIGNoZWNrc3VtIHByb2Nlc3Npbmcg YmVnYW4sCnRoZSB3b3JrZXIgZmFpbGVkIHdpdGhvdXQgcHJvY2Vzc2luZyB0aGUgc2hhcmVkIGNh dGFsb2dzLCB5ZXQgdGhleSB3ZXJlCnN0aWxsIG1hcmtlZCBhcyBwcm9jZXNzZWQuIEFzIGEgcmVz dWx0LCBsYXRlciB3b3JrZXJzIHNraXBwZWQgdGhlbSwgYW5kCmNoZWNrc3VtIGVuYWJsaW5nIGNv dWxkIGNvbXBsZXRlIHN1Y2Nlc3NmdWxseSBldmVuIHRob3VnaCB0aGUgc2hhcmVkCmNhdGFsb2dz IGhhZCBuZXZlciBiZWVuIHByb2Nlc3NlZC4KClRoaXMgY29tbWl0IGZpeGVzIHRoZSBpc3N1ZSBi eSBtYXJraW5nIHNoYXJlZCBjYXRhbG9ncyBhcyBwcm9jZXNzZWQKb25seSBhZnRlciBhIHdvcmtl ciBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LgotLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvZGF0 YWNoZWNrc3VtX3N0YXRlLmMgfCAyMiArKysrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxNCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvZGF0YWNoZWNrc3VtX3N0YXRlLmMgYi9zcmMvYmFja2VuZC9wb3N0 bWFzdGVyL2RhdGFjaGVja3N1bV9zdGF0ZS5jCmluZGV4IDY4NTU3YzE2Y2I5Li4yYjNlMWRmNmNm MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9kYXRhY2hlY2tzdW1fc3RhdGUu YworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2RhdGFjaGVja3N1bV9zdGF0ZS5jCkBAIC0x MzI5LDkgKzEzMjksMTIgQEAgUHJvY2Vzc0FsbERhdGFiYXNlcyh2b2lkKQogCQkgKiBXaGVuIG9u ZSBkYXRhYmFzZSBoYXMgY29tcGxldGVkLCBpdCB3aWxsIGhhdmUgZG9uZSBzaGFyZWQgY2F0YWxv Z3MKIAkJICogc28gd2UgZG9uJ3QgaGF2ZSB0byBwcm9jZXNzIHRoZW0gYWdhaW4uCiAJCSAqLwot CQlMV0xvY2tBY3F1aXJlKERhdGFDaGVja3N1bXNXb3JrZXJMb2NrLCBMV19FWENMVVNJVkUpOwot CQlEYXRhQ2hlY2tzdW1TdGF0ZS0+cHJvY2Vzc19zaGFyZWRfY2F0YWxvZ3MgPSBmYWxzZTsKLQkJ TFdMb2NrUmVsZWFzZShEYXRhQ2hlY2tzdW1zV29ya2VyTG9jayk7CisJCWlmIChyZXN1bHQgPT0g REFUQUNIRUNLU1VNU1dPUktFUl9TVUNDRVNTRlVMKQorCQl7CisJCQlMV0xvY2tBY3F1aXJlKERh dGFDaGVja3N1bXNXb3JrZXJMb2NrLCBMV19FWENMVVNJVkUpOworCQkJRGF0YUNoZWNrc3VtU3Rh dGUtPnByb2Nlc3Nfc2hhcmVkX2NhdGFsb2dzID0gZmFsc2U7CisJCQlMV0xvY2tSZWxlYXNlKERh dGFDaGVja3N1bXNXb3JrZXJMb2NrKTsKKwkJfQogCX0KIAogCUZyZWVEYXRhYmFzZUxpc3QoRGF0 YWJhc2VMaXN0KTsKQEAgLTE0NjksMTEgKzE0NzIsMTEgQEAgRnJlZURhdGFiYXNlTGlzdChMaXN0 ICpkYmxpc3QpCiAgKgkJQ29tcGlsZSBhIGxpc3Qgb2YgcmVsYXRpb25zIGluIHRoZSBkYXRhYmFz ZQogICoKICAqIFJldHVybnMgYSBsaXN0IG9mIE9JRHMgZm9yIHRoZSByZXF1ZXN0ZWQgcmVsYXRp b24gdHlwZXMuIElmIHRlbXBfcmVsYXRpb25zCi0gKiBpcyBUcnVlIHRoZW4gb25seSB0ZW1wb3Jh cnkgcmVsYXRpb25zIGFyZSByZXR1cm5lZC4gSWYgdGVtcF9yZWxhdGlvbnMgaXMKLSAqIEZhbHNl IHRoZW4gbm9uLXRlbXBvcmFyeSByZWxhdGlvbnMgd2hpY2ggaGF2ZSBkYXRhIGNoZWNrc3VtcyBh cmUgcmV0dXJuZWQuCi0gKiBJZiBpbmNsdWRlX3NoYXJlZCBpcyBUcnVlIHRoZW4gc2hhcmVkIHJl bGF0aW9ucyBhcmUgaW5jbHVkZWQgYXMgd2VsbCBpbiBhCi0gKiBub24tdGVtcG9yYXJ5IGxpc3Qu IGluY2x1ZGVfc2hhcmVkIGhhcyBubyByZWxldmFuY2Ugd2hlbiBidWlsZGluZyBhIGxpc3Qgb2YK LSAqIHRlbXBvcmFyeSByZWxhdGlvbnMuCisgKiBpcyBUcnVlIHRoZW4gb25seSB0ZW1wb3Jhcnkg cmVsYXRpb25zIHdpdGggc3RvcmFnZSBhcmUgcmV0dXJuZWQuICBJZgorICogdGVtcF9yZWxhdGlv bnMgaXMgRmFsc2UgdGhlbiBub24tdGVtcG9yYXJ5IHJlbGF0aW9ucyB3aXRoIHN0b3JhZ2UgYXJl CisgKiByZXR1cm5lZC4gIElmIGluY2x1ZGVfc2hhcmVkIGlzIFRydWUgdGhlbiBzaGFyZWQgcmVs YXRpb25zIGFyZSBpbmNsdWRlZCBhcworICogd2VsbCBpbiBhIG5vbi10ZW1wb3JhcnkgbGlzdC4g aW5jbHVkZV9zaGFyZWQgaGFzIG5vIHJlbGV2YW5jZSB3aGVuIGJ1aWxkaW5nCisgKiBhIGxpc3Qg b2YgdGVtcG9yYXJ5IHJlbGF0aW9ucy4KICAqLwogc3RhdGljIExpc3QgKgogQnVpbGRSZWxhdGlv bkxpc3QoYm9vbCB0ZW1wX3JlbGF0aW9ucywgYm9vbCBpbmNsdWRlX3NoYXJlZCkKQEAgLTE0OTks NiArMTUwMiw5IEBAIEJ1aWxkUmVsYXRpb25MaXN0KGJvb2wgdGVtcF9yZWxhdGlvbnMsIGJvb2wg aW5jbHVkZV9zaGFyZWQpCiAJCXsKIAkJCWlmICghdGVtcF9yZWxhdGlvbnMpCiAJCQkJY29udGlu dWU7CisKKwkJCWlmICghUkVMS0lORF9IQVNfU1RPUkFHRShwZ2MtPnJlbGtpbmQpKQorCQkJCWNv bnRpbnVlOwogCQl9CiAJCWVsc2UKIAkJewotLSAKMi41NS4wCgo= --000000000000b72a2f065624537d--