You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The tests for the LSST software stack are run in parallel. We were getting failures roughly 10% of the time because of font cache directory creation issues. Looking at the code in font_manager.py we realised that setting $TRAVIS would fix our problem, which it did. This feels wrong though. It seems to me that this TRAVIS-specific bandaid is masking a more general problem with the cache. At the very least the environment variable being used to work around the problem should not be TRAVIS as the problem occurs any time two processes are trying to run matplotlib at the same time. Trying to explain why our test harness is forcing export TRAVIS=1 is challenging 😄
Another workaround this is to persist the font cache directory (since it shouldn't be changing between test runs anyway). But really what we need to do is create a lockfile while the cache is being created.
Yes. I'm really saying that the TRAVIS=1 fix should be regarded as a temporary hack and that a lock file is required. It's relatively easy to trigger this problem in a multi-process environment and treating it as a one-off Travis problem is not the right answer (and, of course, hides the problem from your CI).
The tests for the LSST software stack are run in parallel. We were getting failures roughly 10% of the time because of font cache directory creation issues. Looking at the code in
font_manager.py
we realised that setting$TRAVIS
would fix our problem, which it did. This feels wrong though. It seems to me that this TRAVIS-specific bandaid is masking a more general problem with the cache. At the very least the environment variable being used to work around the problem should not be TRAVIS as the problem occurs any time two processes are trying to run matplotlib at the same time. Trying to explain why our test harness is forcingexport TRAVIS=1
is challenging 😄This is the trace without TRAVIS being set:
The text was updated successfully, but these errors were encountered: