Checkpointer/FSImageSaver is regular tasks and dump NameNode meta to disk, at most per hour by default. If it receive some command (e.g. transition to active in HA mode) it will cancel checkpoint and delete tmp files using FSImage#deleteCancelledCheckpoint. However if NameNode shutdown when checkpoint, the tmp files will not be cleaned anymore.
Consider there are 500m inodes+blocks, it could cost 5~10min to finish once checkpoint, if we shutdown NameNode during checkpointing, fsimage checkpoint file will never be cleaned, after long time, there could be many useless checkpoint files. So I propose that we should add hook to clean that when shutdown.