Open salmanee opened 5 years ago
FlowDroid can only use the memory allocated to the JVM. Did you specify a sufficient heap size using the -Xmx
parameter, e.g., java -Xmx8g FlowDroid.jar ...
?
I did .. I set the -Xmx to 32g and yet run into the following error message:
[main] ERROR soot.jimple.infoflow.android.SetupApplication$InPlaceInfoflow - Could not wait for executor termination java.lang.InterruptedException: sleep interrupted at java.lang.Thread.sleep(Native Method) at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:509) at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:240) at soot.jimple.infoflow.android.SetupApplication$InPlaceInfoflow.runAnalysis(SetupApplication.java:1180) at soot.jimple.infoflow.android.SetupApplication.processEntryPoint(SetupApplication.java:1424) at soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:1359) at soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:1306) at soot.jimple.infoflow.cmd.MainClass.run(MainClass.java:333) at soot.jimple.infoflow.cmd.MainClass.main(MainClass.java:231) [Service Thread] WARN soot.jimple.infoflow.memory.FlowDroidMemoryWatcher - Running out of memory, solvers terminated
That error message doesn't look like a big problem. The data flow solvers were aborted, because FlowDroid reached its memory threshold. That can happen, and as long as you get your results, it's nothing to worry about. Did you get any results?
I got some results but it's not complete.. some taint propagations seem to be missing
@StevenArzt I got the very same problem. Can we really ignore this? I can see FlowDroid eating up all the memory of a computer when running.
The data flow analysis needs quite a bit of memory. That's why FlowDroid has a check to ensure that it doesn't get stuck when it runs out of memory, but instead terminates gracefully and reports the results it has already found so far. Reducing the memory consumption of FlowDroid is an active area of research.
@salmanee Can you be more precise on what is missing in which APK?
@StevenArzt Sure! Im running FlowDroid on com.netflix.mediaclient Version(4.8.6). Out of the 50 methods marked as SINK only 8 of them were reported in the results (despite the fact that the rest of the sink methods are reachable and I was expecting them to show up in the results too)
Has someone been able to solve this ?
Im running Flowdroid on an apk and after 15 min it reports
WARN soot.jimple.infoflow.memory.FlowDroidMemoryWatcher - Running out of memory, solvers terminated
despite the fact that there are still plenty of memory left. Is this memory limit imposed somewhere in FlowDroid?