Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qGcbq-0005HW-48 for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Jul 2023 09:46:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qGcbo-0004ej-Sn for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Jul 2023 09:46:08 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qGcbn-0004eA-Rv for pgsql-hackers@lists.postgresql.org; Tue, 04 Jul 2023 09:46:08 +0000 Received: from mail-me3aus01olkn2187.outbound.protection.outlook.com ([40.92.63.187] helo=AUS01-ME3-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qGcbh-001xzg-Fr for pgsql-hackers@lists.postgresql.org; Tue, 04 Jul 2023 09:46:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KWLw9tEklPacXYbnT9SjJ2Fh7FM1eHvTSModhkFxjzmjubh/7p+GqpsIS1Y3d2y+zwzkdobJ+q4yK/JaLg8X23a6Fh48OFT0g4ReY45Ca8qn0NQIvuHWscGlpNX7Ca8/G6sRU7b8pleWZqoR3yScc/040srYDRoodRcRBdVfHJNfhsPG3d54z0jOLIOFh7bihbrgprIE+YldpmC4fV111Os5C2jUc8W1IVNSEKNiWaRmvoO3bKG7dTbWW1a2C0yv+JLiToTRP1JlFgrn95zaJSXaxir6JHG+PeGLiN5KC6Lz7OIH9n3sZDfTnKLv10dPM8hzS0ZjnS3I0BSybkzg0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BxVc7d3Q8INlWnUeEjZiRrtOoqqCkxls72YxvJxpNLs=; b=ONUz2QfOimrks5BKocTq23Ku78ch5PqCMp5fnlWZouvvdhBBd5f1nMSSW6Lmr+dq0wvy4K+HY9v7VIxFQmEi+8gdMmckiZe8UW6NgO0psNHBSPDmqunX07phD8yVFbOTXv0L3Vg5Q8ca6YAAu85NW8Ozokp16vUuzDosOamncyHN5cY/hxKcmPYItdo1ZJWzNRwi13P0eqQ1hDBuVwy8YNgJUf2VsDfV2lNaNwQIgiGgXaEM16jqzJUz2lDsrvTZ4/tMF3MXJ5ug5xzpqHIO+852CUtp3ezquCuF5J++0h8NbGDnnkmm673QcoWjH0p7CMdHQo0jBpuudYVUK2+GVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BxVc7d3Q8INlWnUeEjZiRrtOoqqCkxls72YxvJxpNLs=; b=dtCyEazpeRIEB3jliUlE2IPAB00leoSlgaWZ0WFYtp0/aFvgWelut70SrpB8vLe7oZ1JeTrg6VXE5qsNGjh4FweOIqENMOmCswGnZHR0yuCi1MB6yhVXPKSsEPywgu7aQ5ZKujrZ3GV+dksGTslxBVLAMB+neF+OS++xrgwFCdG1Y3myxANLVNDGuemCsJdUmGuHYo+6e9ND7BOJbAHc7/dP8x+EAJA0++32dL7mlagLL7vPYhnT4pdQY+L0W7tZ2tgKqfX0LZNc9pE9UUbBIehIt4EbfwS07Ec8WWtWo1JSXRFu7GhD01rTlkx1/f6G0tR5LIag+aMTgKf/As4K3A== Received: from MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:c3::12) by MEAP282MB0373.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:6f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.31; Tue, 4 Jul 2023 09:45:55 +0000 Received: from MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM ([fe80::1850:b5ce:dbc1:22f0]) by MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM ([fe80::1850:b5ce:dbc1:22f0%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 09:45:55 +0000 References: User-agent: mu4e 1.4.15; emacs 28.1 From: Japin Li To: jian he Cc: Palak Chaturvedi , Thomas Munro , pgsql-hackers@postgresql.org, pgsql-hackers@lists.postgresql.org Subject: Re: Extension Enhancement: Buffer Invalidation in pg_buffercache In-reply-to: Date: Tue, 04 Jul 2023 17:45:47 +0800 Message-ID: Content-Type: text/plain X-TMN: [DIBlM/cCvutassUi3imyoeo0JTdUdxaTxXd80hYx7IM=] X-ClientProxiedBy: TYCPR01CA0026.jpnprd01.prod.outlook.com (2603:1096:405:1::14) To MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:c3::12) X-Microsoft-Original-Message-ID: <86wmzgm2lw.fsf@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MEYP282MB1669:EE_|MEAP282MB0373:EE_ X-MS-Office365-Filtering-Correlation-Id: dd1d6190-fcdf-4c6b-3849-08db7c73763a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 56njC7iENt7jkq+6GvbWn5Zcb3WX7ifJCoJzUp0TCmYiF9nR+UwZi8sxHoMP3EiXaOX4NMSdOG5bZWe6KB2n9diplbp5L9dq2eRuULeDKpGtAYXrsUoiGlTaejb2d9/8JeCQ3OQy8xUSXM8A7/jadCwXjpDgyfhG8rE5o7yqO4b2Cq1x+f5w7QFIl9A/w0FSdlKL5yKOeAmkStn0VzU+Oybk215PuamkAkJsge1jNoZT23QUf1cVrXbeK6VYKxSKst48RCzGraoc0O/eAMi5l328obpDrzVkXl4J2SVFFmblIpTlT2kujj1S/tb7TTXgKi0LPz5QBaYwaUWtsp9wjXmMgK+VK+wGsl2Qc8MLOKrFDNCcl10zED+PIRKPViF2poJpOK0KvpjaGiHwgpgBiVWaWkO1lesp30NLyAWTI+4GyceBVBC9JJdHUEzbXQptB10c0XBcycJD4ik2VZJ+xp2FM9tN8ujntUqvaiugXvYaDVSnTD+LhWHbxDsm8zg3/x+A3iJqb+ZL3ef2CHndVTePFqrsPnG1F5XG5KPkqvyTGZyy2+uo4sEG4gywuRLB X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0pL+ShW3T4VjwWzUHpgGMFET6GTd8LV50Pwr4nBC+607EOm8DuSGBpjvUG6+?= =?us-ascii?Q?8Ev4e04s78nidpWp4t6inrfBuREhbQYxjk7k6+cGembwOsqUEdFL1EY51BfO?= =?us-ascii?Q?5NFEWQ+wL28ac8q7d/Zud9Wqcy5PjFJUB8gvoRk2cOygjDKd2eIChFzmW4ze?= =?us-ascii?Q?aGXPP/A9Y2yzQ2BfiFh53+OO1XyOHGna6Odk72qkLF2h3tP3gtlSO1AOliTZ?= =?us-ascii?Q?ym5TnbNzqL0QDe2g8Utm/z1yRdZHfFIIgc0KSOyUcbrO13kDkiV04WxOOLZ3?= =?us-ascii?Q?qkZsudFRm8LWdradh/n+kXMFycE3lEZj3X12dL0+7D5eLvfHtByX2XyP8Ti4?= =?us-ascii?Q?df5OE/R3u1azmDQNDsLtf3RBI/18uo0Jx12ttk4C5IfGwoT818S3dR3tEW8B?= =?us-ascii?Q?CsIvrxFVOhxI5sfj+qeFMPnoCGD2tsLoMqiTnEnoMqzUYjDacwfF1fyIp2jM?= =?us-ascii?Q?vmkN3Otkv3PpOctDF1+hefPMlq8P06MxOJhnNPUQA5FYigyggZJGpyutuY2F?= =?us-ascii?Q?Zaj+m/aFC/0ypzRkIHQEdmbDOgHcjSkS70hcL4Y7BlETbWLXB2mlP2u0S91J?= =?us-ascii?Q?yDahuJiVysCB7Hi8djUMRf8sP5tq7vhssXScsb1O9A4oPIwpDMVsA9EF50XT?= =?us-ascii?Q?cSKWXe0NMRrAsWN2cTpHVBJdTq5JpLSKnCGxT/ZdFXl+6qLzOAc6oVplb3P5?= =?us-ascii?Q?cgaO9vqtxeg8UMsvfvmuUuXzfiyqYBXJGNm/Dlmvl7o8BvplJm/YmdY+dmFA?= =?us-ascii?Q?aZdeLrBpx2YPmcV54xm9DNWlyBYxlTnnSv26gRRGtDWnIlHRKlALmYFrLzVq?= =?us-ascii?Q?oGBFT9RHi6q3jK7xRCk8csHsmpsXcahvkuJ2wHFNdTWI9cXTpXT1X1yDc/cR?= =?us-ascii?Q?SdfkbCl8dHdFxsNYGC7BxjJPUnDcRaXIjKMkIfTypiSM2DLxlXjz7uB6XnOt?= =?us-ascii?Q?nH3QJAtK/apEpajU8uQrv47VblwMLd6QZTftQPDEf1EJq9NoUP/gW+AyAQzQ?= =?us-ascii?Q?ko+LyMbhxyw6/IhjW2JbODIYiitb3xiMIDfXVJfNA7jEHBl233G17P+mCUtA?= =?us-ascii?Q?iFRp4yr5sQ8y6oi0eqgLgaEPbZ/sTgqdwMvCR4u/m6tvJuW5oGujTcusJ8DW?= =?us-ascii?Q?mHeSrvLPVdDO/tbvfk6PrBNXWV1vMhk63BNB8L78m0vbpXuA04OLdd5Q9o8g?= =?us-ascii?Q?pyWATfPQP/RjDMFhHSBpw0xCLqE73XsPAlxRTQ=3D=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-746f3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: dd1d6190-fcdf-4c6b-3849-08db7c73763a X-MS-Exchange-CrossTenant-AuthSource: MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 09:45:55.2761 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MEAP282MB0373 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, 04 Jul 2023 at 17:00, jian he wrote: > the following will also crash. no idea why. > begin; > select count(*) from onek; > select relpages from pg_class where relname = 'onek'; --queryA > > SELECT count(*) FROM pg_buffercache WHERE relfilenode = > pg_relation_filenode('onek'::regclass); --queryB > > insert into onek values(default); > > select count(pg_buffercache_invalidate(bufferid)) from > pg_buffercache where relfilenode = > pg_relation_filenode('onek'::regclass); > > --------------------------------- > queryA returns 35, queryB returns 37. > ---------------------------------- > crash info: > test_dev=*# insert into onek values(default); > INSERT 0 1 > test_dev=*# select count(pg_buffercache_invalidate(bufferid)) from > pg_buffercache where relfilenode = > pg_relation_filenode('onek'::regclass); > TRAP: failed Assert("resarr->nitems < resarr->maxitems"), File: > "../../Desktop/pg_sources/main/postgres/src/backend/utils/resowner/resowner.c", > Line: 275, PID: 1533312 According to the comments of ResourceArrayAdd(), the caller must have previously done ResourceArrayEnlarge(). I tried to call ResourceOwnerEnlargeBuffers() before PinBuffer_Locked(), so it can avoid this crash. if ((buf_state & BM_DIRTY) == BM_DIRTY) { + /* make sure we can handle the pin */ + ResourceOwnerEnlargeBuffers(CurrentResourceOwner); + /* * Try once to flush the dirty buffer. */ PinBuffer_Locked(bufHdr); -- Regrads, Japin Li.