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 postgres: jian test_dev [local] SELECT(ExceptionalCondition+0xa1)[0x55fc8f8d14e1] postgres: jian test_dev [local] SELECT(+0x9e7ab3)[0x55fc8f915ab3] postgres: jian test_dev [local] SELECT(ResourceOwnerRememberBuffer+0x1d)[0x55fc8f91696d] postgres: jian test_dev [local] SELECT(+0x78ab17)[0x55fc8f6b8b17] postgres: jian test_dev [local] SELECT(TryInvalidateBuffer+0x6d)[0x55fc8f6c507d] /home/jian/postgres/pg16_test/lib/pg_buffercache.so(pg_buffercache_invalidate+0x3d)[0x7f2361837abd] postgres: jian test_dev [local] SELECT(+0x57eebc)[0x55fc8f4acebc] postgres: jian test_dev [local] SELECT(ExecInterpExprStillValid+0x3c)[0x55fc8f4a6e2c] postgres: jian test_dev [local] SELECT(+0x5a0f16)[0x55fc8f4cef16] postgres: jian test_dev [local] SELECT(+0x5a3588)[0x55fc8f4d1588] postgres: jian test_dev [local] SELECT(+0x58f747)[0x55fc8f4bd747] postgres: jian test_dev [local] SELECT(standard_ExecutorRun+0x1f0)[0x55fc8f4b29f0] postgres: jian test_dev [local] SELECT(ExecutorRun+0x46)[0x55fc8f4b2d16] postgres: jian test_dev [local] SELECT(+0x7eb3b0)[0x55fc8f7193b0] postgres: jian test_dev [local] SELECT(PortalRun+0x1eb)[0x55fc8f71b7ab] postgres: jian test_dev [local] SELECT(+0x7e8cf4)[0x55fc8f716cf4] postgres: jian test_dev [local] SELECT(PostgresMain+0x134f)[0x55fc8f71869f] postgres: jian test_dev [local] SELECT(+0x70f80c)[0x55fc8f63d80c] postgres: jian test_dev [local] SELECT(PostmasterMain+0x1758)[0x55fc8f63f278] postgres: jian test_dev [local] SELECT(main+0x27e)[0x55fc8f27067e] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7f2361629d90] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7f2361629e40] postgres: jian test_dev [local] SELECT(_start+0x25)[0x55fc8f272bb5] 2023-07-04 16:56:13.088 CST [1532822] LOG: server process (PID 1533312) was terminated by signal 6: Aborted 2023-07-04 16:56:13.088 CST [1532822] DETAIL: Failed process was running: select count(pg_buffercache_invalidate(bufferid)) from pg_buffercache where relfilenode = pg_relation_filenode('onek'::regclass); 2023-07-04 16:56:13.088 CST [1532822] LOG: terminating any other active server processes server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: 2023-07-04 16:56:13.091 CST [1533381] FATAL: the database system is in recovery mode Failed. The connection to the server was lost. Attempting reset: Failed.