Skip to content

Memory Leak In Cluster Cost #2793

@ryan-mist

Description

@ryan-mist

Description

Observed Behavior:
As part of ClusterCost state, we maintain a map of NodePools → NodePoolCost. Currently, we only remove NodePools from this map when a NodeClaim is deleted.

In the case where NodePools are deleted before NodeClaims, we leak the following for the NodePool:

type NodePoolCost struct {
    cost            float64
    instanceTypeMap map[string]*cloudprovider.InstanceType // instance name -> instance
    offeringCounts map[OfferingKey]OfferingCount
}

This leaked memory can accumulate significantly over time depending on the providers caching layer.

Expected Behavior:

  • Remove NodePools from this mapping when NodePool has been deleted

Reproduction Steps (Please include YAML):

Versions:

  • Chart Version:
  • Kubernetes Version (kubectl version):
  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.needs-priorityneeds-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions