Todd Lipcon created IMPALA-7534: ----------------------------------- Summary: Handle invalidation races in CatalogdMetaProvider cache Key: IMPALA-7534 URL: https://issues.apache.org/jira/browse/IMPALA-7534 Project: IMPALA Issue Type: Sub-task Reporter: Todd Lipcon
There is a well-known race in Guava's LoadingCache that we are using for CatalogdMetaProvider which we are not currently handling: - thread 1 gets a cache miss and makes a request to fetch some data from the catalogd. It fetches the catalog object with version 1 and then gets context switched out or otherwise slow - thread 2 receives an invalidation for the same object, because it has changed to v2. It calls 'invalidate' on the cache, but nothing is yet cached. - thread 1 puts back v1 of the object into the cache In essence we've "missed" an invalidation. This is also described in this nice post: https://softwaremill.com/race-condition-cache-guava-caffeine/ The race is quite unlikely but could cause some unexpected results that are hard to reason about, so we should look into a fix. -- This message was sent by Atlassian JIRA (v7.6.3#76005)