Skip to content

Possible memory leak in LookUpTableGrid.CACHE #176

Description

@grojeda

We are investigating recurring OOMs in a production TDS 5.9 deployment using EDAL 1.5.3.3.

A heap dump analysed with Eclipse MAT showed that:

  • LookUpTableGrid.CACHE retained ~4.56 GB (~90%) of the analysed heap
  • the cache contained 390 CurvilinearCoords -> LookUpTableGrid entries
  • the GC root path confirmed the static CACHE was keeping these objects alive

The cache is currently an unbounded static HashMap with no size limit, TTL or eviction policy.

A later JVM also showed 620 live instances of each of:

CurvilinearCoords
LookUpTableGrid
LookUpTable

This looks consistent with curvilinear grids accumulating over the JVM lifetime.

Would it make sense to make this cache bounded or add an eviction/expiry policy?

Related TDS issue: Unidata/tds#689
Possibly related: Unidata/tds#684

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions