in 9.3 and 9.4, pgstat_reset_remove_files uses the global variable pgstat_stat_directory rather than the argument it is passed, "directory". On crash recovery, this means the tmp directory gets cleared twice and the permanent pg_stat doesn't get cleared at all.
It seems like the obvious one line change would fix it, but I haven't tested it because I don't know how to cause a crash without pg_stat already being empty. pgstat_reset_remove_files(const char *directory) { DIR *dir; struct dirent *entry; char fname[MAXPGPATH]; dir = AllocateDir(pgstat_stat_directory); Cheers, Jeff