[
https://issues.apache.org/jira/browse/DERBY-2700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen closed DERBY-2700.
-------------------------------------
Resolution: Invalid
Closing the issue as 'invalid'. I had missed that the cache manager reuses
Cacheables, not only CachedItems. Cacheable.clearIdentity() does what it's
supposed to do (like clearing references to invalidated statements). Buffers
containing page data are not nulled out, but as long as they can be reused
later, I think that's fine (and the user also has the possibility to tune the
maximum number of pages/bytes to cache). Sorry about the noise!
> Invalid entries in the cache manager are not garbage collected until the
> CachedItem is reused
> ---------------------------------------------------------------------------------------------
>
> Key: DERBY-2700
> URL: https://issues.apache.org/jira/browse/DERBY-2700
> Project: Derby
> Issue Type: Bug
> Components: Services
> Affects Versions: 10.2.1.6, 10.2.2.0, 10.3.0.0
> Reporter: Knut Anders Hatlen
> Assigned To: Knut Anders Hatlen
> Attachments: 2700.diff
>
>
> When an entry in the cache manager becomes invalid (for instance because a
> table is dropped), it cannot be garbage collected because we only set the
> valid_ field in CachedItem to false. We should also set entry to null to make
> the Cacheable eligible for garbage collection. Currently, invalid cached
> objects cannot be garbage collected until their CachedItems are reused. This
> causes Derby to hold on to resources too long, and can in the worst case lead
> to an OutOfMemoryError.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.