When stress-testing another goma backend with GOMA_FALLBACK=false, I sometimes see jobs that fail due to the goma client not finding generated files. torque-generated/builtin-definitions-from-dsl.h and include/inspector/Runtime.h being the most common. When these compile jobs fail, I confirm that the files actually exist in the correct location, but rebuilds fail with the same error. The jobs succeed once I restart the goma client. The ninja dependencies appear to be correct, so I suspect that this is a bug in one of the goma client's caches.
If I modify IncludeFileFinder::Lookup() so that it doesn't use the include_dir_index_lowerbound_ map or files_in_include_dirs_ set, then I have not been able to reproduce the issue.
Alternatively, I noticed that if I increase the (suspicious) 1 second constant in FileStat::CanBeNewerThan() to 5 seconds then I cannot reproduce the failure either (I was still able to reproduce the failures with a value of 2 seconds). This is a small change at least, but feels like it's sacrificing cache efficiently to mask a bug.
Comment 1 by most...@vewd.com
, Dec 7