-
Notifications
You must be signed in to change notification settings - Fork 7.2k
Open
Labels
Status: TriageInformation is being gatheredInformation is being gathered
Description
Describe the bug
When I use the diff tool, an exception is thrown:
2026-02-17 22:11:50 ERROR (CreateDiffTask) Task Error: Checking Program Differences - Uncaught Exception: ghidra.util.exception.AssertException: Unexpected Node Type (9)
found, expecting LongKeyNode ghidra.util.exception.AssertException: Unexpected Node Type (9) found, expecting LongKeyNode
at db.NodeMgr.getLongKeyNode(NodeMgr.java:273)
at db.LongKeyInteriorNode.getLeafNode(LongKeyInteriorNode.java:414)
at db.LongKeyInteriorNode.getLeafNode(LongKeyInteriorNode.java:416)
at db.LongKeyInteriorNode.getLeafNode(LongKeyInteriorNode.java:416)
at db.Table.getRecord(Table.java:701)
at ghidra.program.database.references.ToAdapterV1.getRefList(ToAdapterV1.java:76)
at ghidra.program.database.references.ReferenceDBManager.getToRefs(ReferenceDBManager.java:1642)
at ghidra.program.database.references.ReferenceDBManager.isExternalEntryPoint(ReferenceDBManager.java:1560)
at ghidra.program.database.symbol.SymbolManager.isExternalEntryPoint(SymbolManager.java:1454)
at ghidra.program.database.symbol.MemorySymbol.isExternalEntryPoint(MemorySymbol.java:73)
at ghidra.program.util.ProgramDiff$SymbolComparator.isSame(ProgramDiff.java:2090)
at ghidra.program.util.ProgramDiff$SymbolComparator.isSame(ProgramDiff.java:2079)
at ghidra.program.util.ProgramDiff$ProgramDiffComparatorImpl.getObjectDiffs(ProgramDiff.java:1986)
at ghidra.program.util.ProgramDiff.getLabelDifferences(ProgramDiff.java:1440)
at ghidra.program.util.ProgramDiff.createAddressSet(ProgramDiff.java:974)
at ghidra.program.util.ProgramDiff.getDifferences(ProgramDiff.java:512)
at ghidra.program.util.ProgramMergeManager.getFilteredDifferences(ProgramMergeManager.java:147)
at ghidra.app.plugin.core.diff.DiffController.getFilteredDifferences(DiffController.java:160)
at ghidra.app.plugin.core.diff.CreateDiffTask.run(CreateDiffTask.java:80)
at ghidra.util.task.Task.monitoredRun(Task.java:134)
at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619)
at java.base/java.lang.Thread.run(Thread.java:1447)
When I select the functions option only, I can see the differences, but I can't apply all of them:
2026-02-17 22:34:42 ERROR (ApplyDiffCommand) Error Applying Diff: An error occurred while applying differences.
Only some of the differences may have been applied. ghidra.util.exception.AssertException: Unexpected Node Type (9) found, expecting LongKeyNode
at db.NodeMgr.getLongKeyNode(NodeMgr.java:273)
at db.LongKeyInteriorNode.getLeafNode(LongKeyInteriorNode.java:414)
at db.LongKeyInteriorNode.getLeafNode(LongKeyInteriorNode.java:416)
at db.LongKeyInteriorNode.getLeafNode(LongKeyInteriorNode.java:416)
at db.Table.getRecord(Table.java:701)
at ghidra.program.database.references.ToAdapterV1.getRefList(ToAdapterV1.java:76)
at ghidra.program.database.references.ReferenceDBManager.getToRefs(ReferenceDBManager.java:1642)
at ghidra.program.database.references.ReferenceDBManager.isExternalEntryPoint(ReferenceDBManager.java:1560)
at ghidra.program.database.symbol.SymbolManager.isExternalEntryPoint(SymbolManager.java:1454)
at ghidra.program.database.symbol.MemorySymbol.isExternalEntryPoint(MemorySymbol.java:73)
at ghidra.program.util.ProgramDiff$SymbolComparator.isSame(ProgramDiff.java:2090)
at ghidra.program.util.ProgramDiff$SymbolComparator.isSame(ProgramDiff.java:2079)
at ghidra.program.util.ProgramDiff$ProgramDiffComparatorImpl.getObjectDiffs(ProgramDiff.java:1986)
at ghidra.program.util.ProgramDiff.getLabelDifferences(ProgramDiff.java:1440)
at ghidra.program.util.ProgramDiff.createAddressSet(ProgramDiff.java:974)
at ghidra.program.util.ProgramDiff.getDifferences(ProgramDiff.java:512)
at ghidra.program.util.ProgramMergeManager.mergeLabels(ProgramMergeManager.java:827)
at ghidra.program.util.ProgramMergeManager.merge(ProgramMergeManager.java:452)
at ghidra.program.util.ProgramMergeManager.merge(ProgramMergeManager.java:404)
at ghidra.app.plugin.core.diff.DiffController.apply(DiffController.java:207)
at ghidra.app.plugin.core.diff.ApplyDiffCommand.analysisWorkerCallback(ApplyDiffCommand.java:60)
at ghidra.app.plugin.core.analysis.AutoAnalysisManager$AnalysisWorkerCommand.applyTo(AutoAnalysisManager.java:1699)
at ghidra.app.plugin.core.analysis.AutoAnalysisManager$AnalysisWorkerCommand.applyToWithTransaction(AutoAnalysisManager.java:1647)
at ghidra.app.plugin.core.analysis.AutoAnalysisManager.scheduleWorker(AutoAnalysisManager.java:1355)
at ghidra.app.plugin.core.diff.ApplyDiffCommand.applyTo(ApplyDiffCommand.java:83)
at ghidra.app.plugin.core.diff.ApplyDiffCommand.applyTo(ApplyDiffCommand.java:39)
at ghidra.framework.plugintool.mgr.BackgroundCommandTask.run(BackgroundCommandTask.java:103)
at ghidra.framework.plugintool.mgr.ToolTaskManager.run(ToolTaskManager.java:347)
at java.base/java.lang.Thread.run(Thread.java:1447)
I also saw these errors, but I'm not sure if they are related:
2026-02-17 22:27:42 ERROR (ProgramDataTypeManager) java.lang.IllegalAccessException: class ghidra.program.database.data.DataTypeManagerDB cannot access a member of class ghidra.program.model.data.BadDataType with modifiers "private"
2026-02-17 22:27:42 ERROR (ProgramDataTypeManager) java.lang.IllegalAccessException: class ghidra.program.database.data.DataTypeManagerDB cannot access a member of class ghidra.program.model.data.BadDataType with modifiers "private"
To Reproduce
Steps to reproduce the behavior:
- Copy the program and make some changes to the copy
- Use diff tool to diff it with original program
- See error
Environment (please complete the following information):
- OS: windows
- Java Version: 21
- Ghidra Version: 12.0.3
- Ghidra Origin: github releases
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Status: TriageInformation is being gatheredInformation is being gathered