Alexey Kukushkin created IGNITE-16922: -----------------------------------------
Summary: Getting an entry with expiry policy causes IgniteOutOfMemoryException Key: IGNITE-16922 URL: https://issues.apache.org/jira/browse/IGNITE-16922 Project: Ignite Issue Type: Bug Affects Versions: 2.13 Reporter: Alexey Kukushkin {{IgniteCache#get(key)}} operation causes {{IgniteOutOfMemoryException}} if {{AccessedExpiryPolicy}} or {{TouchedExpiryPolicy}} is enabled for the {{key}} and Ignite has not enough storage for another entry of the same or bigger size. This happens because: # Ignite needs to update TTL # TTL is part of the entry and Ignite overwrites full entry to update the TTL # The problem is Ignite runs common code that checks if Ignite has enough storage to write the entry with updated TTL back. The check fails causing the {{IgniteCache#get(key)}} operation to throw {{IgniteOutOfMemoryException}}. # This behavior is very confusing for Ignite users: why would a "read" operation throw Ignite OOM? Can we update the TTL atomically and skip the storage size check? Please enhance Ignite not to throw Ignite OOM on {{get}}. -- This message was sent by Atlassian Jira (v8.20.7#820007)