Possible to run analyzer in parrallel without OverlappingFileException? #8324
Replies: 2 comments
-
No because this stupid analyzer is explicitly running a I am not a fan of this particular analyzer because of this, nor am I a fan of osgi because of the osgi bundles that I'm forced to sit and wait for them to build all the time. I'm aware I'm not being particularly helpful at the moment. This is all the information I have though. On another note, I have never found this analyzer useful in anyway. If I wanted to get the resources I would use something like resource hacker. |
Beta Was this translation helpful? Give feedback.
-
Ah, thanks for this. I'm attempting to launch two or more threads to run multiple analyses in parallel outside the codebrowser. I'm using PyGhidra and experiencing the issue, but I wonder if the same locking behaviour occurs when analyzing multiple binaries within the CodeBrowser. I suspect it’s less common there, since it’s tricky to trigger simultaneous analysis for multiple programs through the UI. It doesn't break too much like you said, but I get that warning almost every time. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
When analyzing multiple binaries at once, I often get this error:
ghidra.app.script.GhidraScriptLoadException: Unexpected error: java.nio.channels.OverlappingFileLockException at ghidra.app.script.JavaScriptProvider.getScriptInstance(JavaScriptProvider.java:134) at ghidra.app.plugin.prototype.MicrosoftCodeAnalyzerPlugin.WindowsResourceReferenceAnalyzer.runScript(WindowsResourceReferenceAnalyzer.java:97) at ghidra.app.plugin.prototype.MicrosoftCodeAnalyzerPlugin.WindowsResourceReferenceAnalyzer.added(WindowsResourceReferenceAnalyzer.java:72) at ghidra.app.plugin.core.analysis.AnalysisScheduler.runAnalyzer(AnalysisScheduler.java:186) at ghidra.app.plugin.core.analysis.AnalysisTask.applyTo(AnalysisTask.java:37) at ghidra.app.plugin.core.analysis.AnalysisTask.applyTo(AnalysisTask.java:24) at ghidra.app.plugin.core.analysis.AutoAnalysisManager$AnalysisTaskWrapper.run(AutoAnalysisManager.java:660) at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:760) at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:639) at ghidra.program.flatapi.FlatProgramAPI.analyzeChanges(FlatProgramAPI.java:236) at ghidra.program.flatapi.FlatProgramAPI.analyzeAll(FlatProgramAPI.java:213)
I can avoid this if I offset the analysis of the binaries by about 3-6 seconds because the analyzer is very quick for smaller binaries.
Why is this analyzer restricted to one instance per JVM?
Beta Was this translation helpful? Give feedback.
All reactions