[Soot-list] Timer bug in Heros?

Marc-André Marc-André
Mon Jan 7 06:21:04 EST 2013


Hello,

I am trying to do a simple taint analysis in Heros and I keep on getting this
problem, sooner or later:
  * OutofMemoryError - even with 1 or 1.5 Gb
  * timer graphTimer has already been started!

I am pasting the full trace below.

Can anyone tell me what could be behind this?

--
Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

Exception in thread "pool-2-thread-2"
com.google.common.util.concurrent.ExecutionError: java.lang.OutOfMemoryError:
GC overhead limit exceeded
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2256)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:198)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver.processCall(IDESolver.java:405)
	at heros.solver.IDESolver.access$000(IDESolver.java:68)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:659)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
	at java.util.HashMap.newKeyIterator(HashMap.java:940)
	at java.util.HashMap$KeySet.iterator(HashMap.java:974)
	at java.util.HashSet.iterator(HashSet.java:170)
	at java.util.AbstractCollection.containsAll(AbstractCollection.java:307)
	at java.util.AbstractSet.equals(AbstractSet.java:95)
	at java.util.Collections$UnmodifiableSet.equals(Collections.java:1123)
	at
soot.toolkits.exceptions.ThrowableSet$Manager.registerSetIfNew(ThrowableSet.java:318)
	at
soot.toolkits.exceptions.ThrowableSet$Manager.access$900(ThrowableSet.java:92)
	at
soot.toolkits.exceptions.ThrowableSet.whichCatchableAs(ThrowableSet.java:1008)
	at
soot.toolkits.graph.ExceptionalUnitGraph.buildExceptionDests(ExceptionalUnitGraph.java:360)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:279)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
Exception in thread "pool-2-thread-9"
com.google.common.util.concurrent.UncheckedExecutionException:
java.lang.RuntimeException: timer graphTimer has already been started!
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:198)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver.processCall(IDESolver.java:405)
	at heros.solver.IDESolver.access$000(IDESolver.java:68)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:659)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler
in thread "pool-2-thread-2"
Caused by: java.lang.RuntimeException: timer graphTimer has already been
started!
	at soot.Timer.start(Timer.java:103)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:259)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
	at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
	... 13 more
Exception in thread "pool-2-thread-8"
com.google.common.util.concurrent.UncheckedExecutionException:
java.lang.RuntimeException: timer graphTimer has already been started!
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:180)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:663)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: timer graphTimer has already been
started!
	at soot.Timer.start(Timer.java:103)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:259)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
	at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
	... 11 more
Exception in thread "pool-2-thread-7" Exception in thread "pool-2-thread-4"
com.google.common.util.concurrent.UncheckedExecutionException:
java.lang.RuntimeException: timer graphTimer has already been started!
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:198)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver.processCall(IDESolver.java:405)
	at heros.solver.IDESolver.access$000(IDESolver.java:68)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:659)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: timer graphTimer has already been
started!
	at soot.Timer.start(Timer.java:103)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:259)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
	at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
	... 13 more
Exception in thread "pool-2-thread-6"
com.google.common.util.concurrent.UncheckedExecutionException:
java.lang.RuntimeException: timer graphTimer has already been started!
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:180)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:663)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: timer graphTimer has already been
started!
	at soot.Timer.start(Timer.java:103)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:259)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
	at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
	... 11 more
Exception in thread "pool-2-thread-5"
com.google.common.util.concurrent.UncheckedExecutionException:
java.lang.RuntimeException: timer graphTimer has already been started!
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:198)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getStartPointsOf(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver.processCall(IDESolver.java:405)
	at heros.solver.IDESolver.access$000(IDESolver.java:68)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:659)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: timer graphTimer has already been
started!
	at soot.Timer.start(Timer.java:103)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:259)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
	at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
	... 13 more
Exception in thread "pool-2-thread-3" Exception in thread "pool-2-thread-1"
com.google.common.util.concurrent.UncheckedExecutionException:
java.lang.RuntimeException: timer graphTimer has already been started!
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:180)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:663)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: timer graphTimer has already been
started!
	at soot.Timer.start(Timer.java:103)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:259)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
	at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
	... 11 more
Exception in thread "pool-2-thread-20" Exception in thread "pool-2-thread-17"
Exception in thread "pool-2-thread-19" Exception in thread "pool-2-thread-15"
com.google.common.util.concurrent.UncheckedExecutionException:
java.lang.RuntimeException: timer graphTimer has already been started!
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:155)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:180)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:46)
	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:663)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: timer graphTimer has already been
started!
	at soot.Timer.start(Timer.java:103)
	at
soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:259)
	at
soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.makeGraph(JimpleBasedInterproceduralCFG.java:159)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:70)
	at
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG$1.load(JimpleBasedInterproceduralCFG.java:68)
	at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
	at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
	... 11 more
Exception in thread "pool-2-thread-14"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler
in thread "pool-2-thread-17"
Exception in thread "pool-2-thread-13"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler
in thread "pool-2-thread-13"








More information about the Soot-list mailing list