These failures seem to occur when building libsdl2-ttf, and have been seen on both mac and windows builders:
For example:
https://ci.chromium.org/ui/p/emscripten-releases/builders/try/win/b8678860304918941313/overview
The common pattern seems to be the occurrence of cache:INFO: deleting cached file: ... libSDL2.a in the log file, which logically should never happen during test_other.py.
The cause looks to me some kind of race condition that occurs when multiple tests all try to build libSDL2. In this case it seems like we end up calling Post.clear_project_build .. which causes the library built by another process to be deleted.
Our locking mechanism for the cache is not designed to be robust gainst library being deleted by an out side process, and this can break the assertion in the ports build that all deps have been built before we build a given port.
These failures seem to occur when building libsdl2-ttf, and have been seen on both mac and windows builders:
For example:
https://ci.chromium.org/ui/p/emscripten-releases/builders/try/win/b8678860304918941313/overview
The common pattern seems to be the occurrence of
cache:INFO: deleting cached file: ... libSDL2.ain the log file, which logically should never happen duringtest_other.py.The cause looks to me some kind of race condition that occurs when multiple tests all try to build
libSDL2. In this case it seems like we end up callingPost.clear_project_build.. which causes the library built by another process to be deleted.Our locking mechanism for the cache is not designed to be robust gainst library being deleted by an out side process, and this can break the assertion in the ports build that all deps have been built before we build a given port.