There is static initialization order fiasco while creating GlobalCacheBase. The global_cache_lock static variable may not be initialized when GlobalCacheBase is constructed.
static StackPtr<Mutex> global_cache_lock(new Mutex);
One of the instances where this is possible is from typo_edit_dist.cpp
static GlobalCache<TypoEditDistanceInfo> typo_edit_dist_info_cache("keyboard");
This was found by AddressSanitizer: