Skip to content

Crash analysing the heap - Failed to allocate until OOM #2773

@oldergod

Description

@oldergod

Description

Crash analysing the heap

Steps to Reproduce

java.lang.RuntimeException: Not enough memory to allocate buffers for rehashing: 4194304 -> 8388608
	at shark.internal.hppc.LongLongScatterMap.allocateBuffers(LongLongScatterMap.kt:326)
	at shark.internal.hppc.LongLongScatterMap.allocateThenInsertThenRehash(LongLongScatterMap.kt:358)
	at shark.internal.hppc.LongLongScatterMap.set(LongLongScatterMap.kt:103)
	at shark.internal.DominatorTree.updateDominated(DominatorTree.kt:51)
	at shark.internal.PathFinder$VisitTracker$Dominated.visited(PathFinder.kt:63)
	at shark.internal.PathFinder.enqueue(PathFinder.kt:224)
	at shark.internal.PathFinder.findPathsFromGcRoots(PathFinder.kt:170)
	at shark.internal.PathFinder.findPathsFromGcRoots(PathFinder.kt:135)
	at shark.HeapAnalyzer.findLeaks(HeapAnalyzer.kt:275)
	at shark.HeapAnalyzer.analyzeGraph(HeapAnalyzer.kt:253)
	at shark.HeapAnalyzer.analyze$shark(HeapAnalyzer.kt:217)
	at shark.HeapAnalyzer.analyze(HeapAnalyzer.kt:166)
	at leakcanary.internal.AndroidDebugHeapAnalyzer.analyzeHeap(AndroidDebugHeapAnalyzer.kt:156)
	at leakcanary.internal.AndroidDebugHeapAnalyzer.runAnalysisBlocking(AndroidDebugHeapAnalyzer.kt:59)
	at leakcanary.internal.AndroidDebugHeapAnalyzer.runAnalysisBlocking$default(AndroidDebugHeapAnalyzer.kt:46)
	at leakcanary.internal.HeapAnalyzerWorker.doWork(HeapAnalyzerWorker.kt:20)
	at androidx.work.Worker$startWork$1.invoke(Worker.kt:64)
	at androidx.work.Worker$startWork$1.invoke(Worker.kt:64)
	at androidx.work.WorkerKt.future$lambda$2$lambda$1(Worker.kt:100)
	at androidx.work.WorkerKt.$r8$lambda$06LNzu7McnKR6G06fSbfQ2BCegc(Unknown Source:0)
	at androidx.work.WorkerKt$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)
Caused by: java.lang.OutOfMemoryError: Failed to allocate a 67108888 byte allocation with 25165824 free bytes and 45MB until OOM, target footprint 514239376, growth limit 536870912
	at shark.internal.hppc.LongLongScatterMap.allocateBuffers(LongLongScatterMap.kt:322)
	... 23 more

Build.VERSION.SDK_INT: 34
Build.MANUFACTURER: Google
LeakCanary version: 2.14
Analysis duration: 83140 ms
Heap dump file path: /storage/emulated/0/Download/leakcanary-com.squareup.cash.beta.debug/2025-09-03_10-34-29_663.hprof
Heap dump timestamp: 1756892161370

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions