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 1rucF2-006TwH-A0 for pgsql-bugs@arkaria.postgresql.org; Wed, 10 Apr 2024 18:00:12 +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 1rucF0-0067ot-IR for pgsql-bugs@arkaria.postgresql.org; Wed, 10 Apr 2024 18:00:10 +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 1rucF0-0067ok-7N for pgsql-bugs@lists.postgresql.org; Wed, 10 Apr 2024 18:00:10 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rucEt-000ErA-MA for pgsql-bugs@lists.postgresql.org; Wed, 10 Apr 2024 18:00:09 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-516d487659bso7410956e87.2 for ; Wed, 10 Apr 2024 11:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712772002; x=1713376802; darn=lists.postgresql.org; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=WnNSJfzdRgvN2A1G0E+4soJ0HzATSqEL9fpPGUKqie4=; b=d/a7A2VZREUpNUCiLxyt3Z8plnBP/+YRNouz6ceXgm5VpBKPnu8OGuVq7idhYTwwsp W125JzoB+pHaCoQARwUXNi/U4bl7VvF2JlNh1vgZGlk5Zxf3Z9SE7xWTKYaCWsbhfhqG juQhSgnUlOJ+5zBNerRjXZ/gtQjrcxJ0CYZRlIq6kb8FIyP4gZkmiSfepAbEodm2b1tC ajiffFb3XHPkW1CoShxQb1R0R1Qe/fRRyqs7y1+VGvZ3ETs6c+ionQT53Lf4CEJhKngn zXguuSknHQ4OY+Q4wIModaEnILbzN01T4hbILeugS5bJrVPtk12xmwrjytns7COoa+0V fDmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712772002; x=1713376802; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=WnNSJfzdRgvN2A1G0E+4soJ0HzATSqEL9fpPGUKqie4=; b=T4miZsZHmR8dCvWFiY/1mooOmsnLCRGqjpETxmz9FsmBSTgKR52Xj0Yh7jw3vJnSr4 fcWf7swm+r0nMll9IXV8Z8jzvtQJTkXnWvAzWEYdtnVVxlrUJhVnS2OFzZtNGCdmpcub jmwRd3/hNnA2ZpMsIir21fBbEgTEKhZAF2WOyQH5x6stbNatiJF3dyi9JIf25MgpkRFM kgYiYPRcPuW6xXewuepcqgV4EcnpY0Oh+MKJJ3JtmcR5raRcdyaRFambTQ/K5QaIRZ1m rfIo+i5+EbXNFAyyNnlhelObJILoU0+f6GD7MyGKFI2GaV2MHsTPqjxl//AVZjGBuZdM C++A== X-Gm-Message-State: AOJu0YxS7MxgZiWdPM/PLf1NgvTkLj70xUISYtE26sLeVPiiH3lbyEA9 eOCESbvks+nYfDUMTTamD0vF7WT5qC5+9SHA2tvyRYo6bx6oFiqkdshvaVZ9 X-Google-Smtp-Source: AGHT+IELb9u6vhdFWLi8JmmX46f/D1cKLtgwhzq1ILf2VBtjicOPL3VTBlkWiru3i4gWz03Hmft/ow== X-Received: by 2002:a19:7718:0:b0:515:d4e9:96da with SMTP id s24-20020a197718000000b00515d4e996damr2199400lfc.13.1712772001542; Wed, 10 Apr 2024 11:00:01 -0700 (PDT) Received: from [1.0.0.7] ([91.185.79.145]) by smtp.gmail.com with ESMTPSA id a1-20020ac25201000000b00516c1bddfecsm1894401lfl.182.2024.04.10.11.00.00 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Apr 2024 11:00:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------bxfdXliMggOflAn3zXMuIh7v" Message-ID: Date: Wed, 10 Apr 2024 21:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: BUG #18426: Canceling vacuum while truncating a relation leads to standby PANIC Content-Language: en-US To: pgsql-bugs@lists.postgresql.org References: <18426-2d18da6586f152d6@postgresql.org> From: Alexander Lakhin In-Reply-To: <18426-2d18da6586f152d6@postgresql.org> 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. --------------bxfdXliMggOflAn3zXMuIh7v Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 10.04.2024 14:00, PG Bug reporting form wrote: > The following bug has been logged on the website: > > Bug reference: 18426 > ... > A demo test for the issue to follow... Please try the attached patch (for REL_16_STABLE), which: 1) adds a delay inside InvalidateBuffer() to allow for canceling the   operation here. 2) invokes ProcessInterrupts() which would be called if   (buf_state & BM_IO_IN_PROGRESS) inside ConditionVariableSleep() ->   ConditionVariableTimedSleep(). (If you find these changes non-legitimate, I'll look for another approach.) 3) contains test 099_stream_vacuum, based on 027_stream_regress. make -s check -C src/test/recovery/ PROVE_TESTS="t/099*" fails for me (roughly on 1 of 2 runs) just like in the case observed in the wild: ... 2024-04-10 17:20:54.521 UTC|||6616ca5a.26a393|WARNING:  page 90 of relation base/16402/16929 does not exist 2024-04-10 17:20:54.521 UTC|||6616ca5a.26a393|CONTEXT:  WAL redo at 0/DCD12AC0 for Heap2/VISIBLE: snapshotConflictHorizon: 0, flags: 0x03; blkref #0: rel 1663/16402/16929, fork 2, blk 0; blkref #1: rel 1663/16402/16929, blk 90 2024-04-10 17:20:54.521 UTC|||6616ca5a.26a393|PANIC:  WAL contains references to invalid pages 2024-04-10 17:20:54.521 UTC|||6616ca5a.26a393|CONTEXT:  WAL redo at 0/DCD12AC0 for Heap2/VISIBLE: snapshotConflictHorizon: 0, flags: 0x03; blkref #0: rel 1663/16402/16929, fork 2, blk 0; blkref #1: rel 1663/16402/16929, blk 90 2024-04-10 17:20:54.532 UTC|||6616ca5a.26a390|LOG:  startup process (PID 2532243) was terminated by signal 6: Aborted ... Best regards, Alexander --------------bxfdXliMggOflAn3zXMuIh7v Content-Type: text/x-patch; charset=UTF-8; name="bug-18426-demo.patch" Content-Disposition: attachment; filename="bug-18426-demo.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKaW5kZXggZTA2NmEzZjg4OC4uNjBj M2QxMWVjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdy LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTE0Njks NiArMTQ2OSw3IEBAIHJldHJ5OgogCSAqLwogCWlmIChCVUZfU1RBVEVfR0VUX1JFRkNPVU5U KGJ1Zl9zdGF0ZSkgIT0gMCkKIAl7CitwZ191c2xlZXAoMTAwMDAwMEwpOwogCQlVbmxvY2tC dWZIZHIoYnVmLCBidWZfc3RhdGUpOwogCQlMV0xvY2tSZWxlYXNlKG9sZFBhcnRpdGlvbkxv Y2spOwogCQkvKiBzYWZldHkgY2hlY2s6IHNob3VsZCBkZWZpbml0ZWx5IG5vdCBiZSBvdXIg Km93biogcGluICovCkBAIC01MDgwLDYgKzUwODEsNyBAQCBXYWl0SU8oQnVmZmVyRGVzYyAq YnVmKQogCQlidWZfc3RhdGUgPSBMb2NrQnVmSGRyKGJ1Zik7CiAJCVVubG9ja0J1Zkhkcihi dWYsIGJ1Zl9zdGF0ZSk7CiAKK1Byb2Nlc3NJbnRlcnJ1cHRzKCk7CiAJCWlmICghKGJ1Zl9z dGF0ZSAmIEJNX0lPX0lOX1BST0dSRVNTKSkKIAkJCWJyZWFrOwogCQlDb25kaXRpb25WYXJp YWJsZVNsZWVwKGN2LCBXQUlUX0VWRU5UX0JVRkZFUl9JTyk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWNvdmVyeS90LzA5OV9zdHJlYW1fdmFjdXVtLnBsIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvdC8wOTlfc3RyZWFtX3ZhY3V1bS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi5hMGVkNThhM2EyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVj b3ZlcnkvdC8wOTlfc3RyZWFtX3ZhY3V1bS5wbApAQCAtMCwwICsxLDU4IEBACisjIFJ1biB0 aGUgc3RhbmRhcmQgcmVncmVzc2lvbiB0ZXN0cyB3aXRoIHN0cmVhbWluZyByZXBsaWNhdGlv bgordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpD bHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7 Cit1c2UgRmlsZTo6QmFzZW5hbWU7CisKKyMgSW5pdGlhbGl6ZSBwcmltYXJ5IG5vZGUKK215 ICRub2RlX3ByaW1hcnkgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3ByaW1h cnknKTsKKyRub2RlX3ByaW1hcnktPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxKTsKKyRu b2RlX3ByaW1hcnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxcXsKK2ZzeW5j ID0gb2ZmCisKK21heF9jb25uZWN0aW9ucyA9IDIwMAorCitsb2dfbWluX21lc3NhZ2VzID0g SU5GTworbG9nX2Nvbm5lY3Rpb25zID0gb24KK2xvZ19kaXNjb25uZWN0aW9ucyA9IG9uCits b2dfbGluZV9wcmVmaXggPSAnJW18JXV8JWR8JWN8JworbG9nX3N0YXRlbWVudCA9ICdhbGwn CisKK3NoYXJlZF9idWZmZXJzID0gMU1CCit9KTsKKworIyBJbmNyZWFzZSBzb21lIHNldHRp bmdzIHRoYXQgQ2x1c3Rlci0+bmV3IG1ha2VzIHRvbyBsb3cgYnkgZGVmYXVsdC4KKyRub2Rl X3ByaW1hcnktPmFkanVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnbWF4X2Nvbm5lY3Rp b25zJywgJzI1Jyk7CisKKyRub2RlX3ByaW1hcnktPnN0YXJ0OworCitpcyggJG5vZGVfcHJp bWFyeS0+cHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXFbU0VMRUNUIHBnX2NyZWF0ZV9waHlz aWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzdGFuZGJ5Jyk7XSksCisJMCwKKwkncGh5c2ljYWwg c2xvdCBjcmVhdGVkIG9uIHByaW1hcnknKTsKK215ICRiYWNrdXBfbmFtZSA9ICdteV9iYWNr dXAnOworCisjIFRha2UgYmFja3VwCiskbm9kZV9wcmltYXJ5LT5iYWNrdXAoJGJhY2t1cF9u YW1lKTsKKworIyBDcmVhdGUgc3RyZWFtaW5nIHN0YW5kYnkgbGlua2luZyB0byBwcmltYXJ5 CitteSAkbm9kZV9zdGFuZGJ5ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdz dGFuZGJ5Jyk7Ciskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKCRub2RlX3ByaW1h cnksICRiYWNrdXBfbmFtZSwKKwloYXNfc3RyZWFtaW5nID0+IDEpOworJG5vZGVfc3RhbmRi eS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICJwcmltYXJ5X3Nsb3RfbmFtZSA9 IHN0YW5kYnkiKTsKKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNv bmYnLCAibWF4X3N0YW5kYnlfc3RyZWFtaW5nX2RlbGF5ID0gNjAwcyIpOworJG5vZGVfc3Rh bmRieS0+c3RhcnQ7CisKK215ICRzZXRlbnYgPSAiUEdIT1NUPSIgLiAkbm9kZV9wcmltYXJ5 LT5ob3N0IC4gIiBQR1BPUlQ9IiAuICRub2RlX3ByaW1hcnktPnBvcnQ7CitzeXN0ZW0ocXEo c2ggLWMgIiRzZXRlbnYgLi92YWN1dW0tdGVzdC5zaCIpKTsKKworIyBXYWl0IGZvciBzdGFu ZGJ5IHRvIGNhdGNoIHVwCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1 cCgkbm9kZV9zdGFuZGJ5KTsKKworJG5vZGVfc3RhbmRieS0+c3RvcDsKKyRub2RlX3ByaW1h cnktPnN0b3A7CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVj b3ZlcnkvdmFjdXVtLXRlc3Quc2ggYi9zcmMvdGVzdC9yZWNvdmVyeS92YWN1dW0tdGVzdC5z aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwLi4zNDA2MWE2NzQ1Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdmFjdXVtLXRlc3Quc2gKQEAg LTAsMCArMSwyMyBAQAorIyEvYmluL2Jhc2gKKworbnVtY2xpZW50cz0yMAorZm9yICgoYz0x OyBjPD1udW1jbGllbnRzO2MrKykpOyBkbyBjcmVhdGVkYiBkYiRjOyBkb25lCisKK2ZvciAo KGk9MTtpPD01MDtpKyspKTsgZG8KKyAgZWNobyAiSSAkaSIKKyAgZm9yICgoYz0xOyBjPD1u dW1jbGllbnRzO2MrKykpOyBkbworICAgIGVjaG8gIgorRFJPUCBUQUJMRSBJRiBFWElTVFMg dDsKKworQ1JFQVRFIFRBQkxFIHQoaSBpbnQpOworSU5TRVJUIElOVE8gdCBTRUxFQ1QgZyBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwMDApIGc7CisKK0RFTEVURSBGUk9NIHQgV0hF UkUgaSA+IDEwMDA7CitTRVQgc3RhdGVtZW50X3RpbWVvdXQgPSAnMC41cyc7CitWQUNVVU0g KFZFUkJPU0UsIEFOQUxZWkUpIHQ7CitSRVNFVCBzdGF0ZW1lbnRfdGltZW91dDsKK1ZBQ1VV TSAoVkVSQk9TRSkgdDsKKyIgfCBwc3FsIGRiJGMgPi9kZXYvbnVsbCAmCisgIGRvbmUKKyAg d2FpdAorZG9uZQo= --------------bxfdXliMggOflAn3zXMuIh7v--