Hi, debuginfod-client would try to create the cache config files twice, once through debuginfod_init_cache, which was always called before the debuginfod_clean_cache check. Which called debuginfod_config_cache which also tried to create the config files when they didn't exist yet. debuginfod_config_cache however had a small bug that meant it would not provide a valid struct stat if the config file didn't exist yet. The first patch fixes that:
[PATCH 1/3] debuginfod: Make sure debuginfod_config_cache always returns valid stat Then the second patch removes debuginfod_init_cache which saves two stat calls (but introduces a new mkdir call). [PATCH 2/3] debuginfod: Remove debuginfod_init_cache Finally as soon as debuginfod_clean_cache commits to clean the cache dir we immediately update the mtime of the interval config file so other threads will not try to simultaniously also try to clean up the cache dir. Because that is just duplicate work. [PATCH 3/3] debuginfod: update mtime of interval_path as early as possible Cheers, Mark