There is a check on catalogue cache that sets as needRefresh the RoutingInfoCache of a collection.
Before setting the flag, the function makes sure that the collection haven't been dropped, however this is not enough. We could've marked the cache as needsRefresh from another thread, which causes the server to crash as we have seen on some build failures.
Besides checking if the collection was dropped, we should check if the needsRefresh flag was already set.