Hi~ > Agree with that. Maybe we can call smgrdestroyall in startup process when > replaying CHECKPOINT records, just like bgwriter/checkpointer, which free > all smgr objects after any checkpoint.
That seems reasonable, in that case a startup process would behave just the same as bgwriter or checkpointer. I purpose a patch which calls smgrdestroyall() when redo each XLOG_CHECKPOINT_ONLINE, so that it can keep the same frequency of calling smgrdestroyall() as background processes on primary. I don't call it for XLOG_CHECKPOINT_SHUTDOWN because the process is about to exit so that the memory will go soon, and don't call it for XLOG_CHECKPOINT_REDO because it seems to be a place holder only. — Regards, Jingtang
v3-0001-Fix-SMgrRelation-object-memory-leak-during-startup-r.patch
Description: Binary data