racevedoo commented on issue #3791:
URL: https://github.com/apache/iceberg/issues/3791#issuecomment-999759477


   I investigated this a little, and found that in 9c3e340c we added 
`MetadataTableInvalidatingCacheWriter`. From my understanding, I think it 
introduces additional writes to the cache in the `tableCache.get` trace called 
by `loadTable`. This probably violates an assumption made by caffeine's `Cache` 
class (that `get` calls do not change additional entries) - see javadoc 
(https://github.com/ben-manes/caffeine/blob/v2.8.4/caffeine/src/main/java/com/github/benmanes/caffeine/cache/Cache.java#L55-L68)
   
   This causes the a deadlock between 2 threads: the procedure call thread 
(`HiveServer2-Background-Pool: Thread-1682` in the trace) trying to invalidate 
cache entries while caffeine's `PerformCleanupTask` 
(`ForkJoinPool.commonPool-worker-13` in the trace) is trying to cleanup the 
cache due to ttl expiration.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to