diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index adfc6f67e2..5d34e06eab 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7615,7 +7615,8 @@ StartupXLOG(void) ereport(LOG, (errmsg("last completed transaction was at log time %s", timestamptz_to_str(xtime)))); - + smgrstats(); + elog(PANIC, "recovery PANIC"); InRedo = false; } else diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 64a26e06c6..850b51e316 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -183,6 +183,12 @@ smgr_entry_cleanup(SMgrRelation reln) pfree(reln); } +void +smgrstats(void) +{ + if (SMgrRelationHash != NULL) + smgrtable_stat(SMgrRelationHash); +} /* * smgrinit(), smgrshutdown() -- Initialize or shut down storage diff --git a/src/include/storage/smgr.h b/src/include/storage/smgr.h index a6fbf7b6a6..ac010af74a 100644 --- a/src/include/storage/smgr.h +++ b/src/include/storage/smgr.h @@ -77,6 +77,7 @@ typedef SMgrRelationData *SMgrRelation; #define SmgrIsTemp(smgr) \ RelFileNodeBackendIsTemp((smgr)->smgr_rnode) +extern void smgrstats(void); extern void smgrinit(void); extern SMgrRelation smgropen(RelFileNode rnode, BackendId backend); extern bool smgrexists(SMgrRelation reln, ForkNumber forknum);