-
Notifications
You must be signed in to change notification settings - Fork 4k
Open
Labels
Description
Description
Leak Canary will regularly fail to parse a leak dump and then report a "Heap analysis failure".
Steps to Reproduce
Unable to provide reliable steps immediately, will attempt to reproduce.
kotlin.KotlinNullPointerException
at shark.AndroidObjectInspectors$COMPOSITION_IMPL$inspect$1.invoke(AndroidObjectInspectors.kt:786)
at shark.AndroidObjectInspectors$COMPOSITION_IMPL$inspect$1.invoke(AndroidObjectInspectors.kt:783)
at shark.ObjectReporter.whenInstanceOf(ObjectReporter.kt:61)
at shark.AndroidObjectInspectors$COMPOSITION_IMPL.inspect(AndroidObjectInspectors.kt:785)
at shark.HeapAnalyzer.inspectObjects(HeapAnalyzer.kt:517)
at shark.HeapAnalyzer.findLeaks(HeapAnalyzer.kt:282)
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:18)
at androidx.work.Worker$1.run(Worker.java:86)
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)
Shark CLI failure:
❯ shark-cli --hprof ~/Downloads/leakcanaryleak.hprof analyze
====================================
HEAP ANALYSIS FAILED
You can report this failure at https://github.com/square/leakcanary/issues
Please provide the stacktrace, metadata and the heap dump file.
====================================
STACKTRACE
kotlin.KotlinNullPointerException
at shark.AndroidObjectInspectors$COMPOSITION_IMPL$inspect$1.invoke(AndroidObjectInspectors.kt:792)
at shark.AndroidObjectInspectors$COMPOSITION_IMPL$inspect$1.invoke(AndroidObjectInspectors.kt:789)
at shark.ObjectReporter.whenInstanceOf(ObjectReporter.kt:61)
at shark.AndroidObjectInspectors$COMPOSITION_IMPL.inspect(AndroidObjectInspectors.kt:791)
at shark.HeapAnalyzer.inspectObjects(HeapAnalyzer.kt:517)
at shark.HeapAnalyzer.findLeaks(HeapAnalyzer.kt:282)
at shark.HeapAnalyzer.analyzeGraph(HeapAnalyzer.kt:253)
at shark.HeapAnalyzer.analyze$shark(HeapAnalyzer.kt:217)
at shark.HeapAnalyzer.analyze(HeapAnalyzer.kt:166)
at shark.HeapAnalyzer.analyze(HeapAnalyzer.kt:104)
at shark.AnalyzeCommand$Companion.analyze(AnalyzeCommand.kt:36)
at shark.AnalyzeCommand.run(AnalyzeCommand.kt:16)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:139)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:14)
at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:215)
at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:212)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:230)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:253)
at shark.MainKt.main(Main.kt:13)
====================================
METADATA
Build.VERSION.SDK_INT: -1
Build.MANUFACTURER: Unknown
LeakCanary version: Unknown
Analysis duration: 2424 ms
Heap dump file path: /Users/jterry/Downloads/leakcanaryleak.hprof
Heap dump timestamp: 1761603202245
====================================
Expected behavior: A hprof should be analysed and a leak discovered.
Version Information
- LeakCanary version: 2.1.2 | Shark CLI
2.14 - Android OS version: 15
- Gradle version: 8.15
Additional Information
Working on it!
