Open sdhuie opened 4 years ago
App had been running for 6h when the error occurred.
java.lang.RuntimeException: An unvisited state has non-empty transitions. at com.android.commands.monkey.ape.agent.StatefulAgent.checkAndRefreshNewState(StatefulAgent.java:525) at com.android.commands.monkey.ape.agent.StatefulAgent.preCheckTrivialNewState(StatefulAgent.java:565) at com.android.commands.monkey.ape.agent.StatefulAgent.buildAndValidateNewState(StatefulAgent.java:574) at com.android.commands.monkey.ape.agent.StatefulAgent.updateStateInternal(StatefulAgent.java:586) at com.android.commands.monkey.ape.agent.ApeAgent.updateStateWrapper(ApeAgent.java:264) at com.android.commands.monkey.ape.agent.ApeAgent.updateState(ApeAgent.java:251) at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:782) at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1277) at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377) at com.android.commands.monkey.Monkey.run(Monkey.java:770) at com.android.commands.monkey.Monkey.main(Monkey.java:612) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)
[APE] Internal error java.util.ConcurrentModificationException at java.util.ArrayList.writeObject(ArrayList.java:766) at java.lang.reflect.Method.invoke(Native Method) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1036) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1552) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1488) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1604) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1565) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1488) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at com.android.commands.monkey.ape.agent.StatefulAgent.saveGraph(StatefulAgent.java:1216) at com.android.commands.monkey.ape.agent.StatefulAgent.tearDown(StatefulAgent.java:1182) at com.android.commands.monkey.ape.agent.SataAgent.tearDown(SataAgent.java:209) at com.android.commands.monkey.MonkeySourceApe.tearDown(MonkeySourceApe.java:198) at com.android.commands.monkey.Monkey.run(Monkey.java:779) at com.android.commands.monkey.Monkey.main(Monkey.java:612) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359) [APE] Please report this bug to developers.
[APE] >>>>>>>> SATA end step [644][10414526109924] [APE] Internal error java.lang.RuntimeException: Conflict: not implement yet! at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:142) at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:75) at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:126) at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:75) at com.android.commands.monkey.ape.naming.AbstractNamingManager.updateNaming(AbstractNamingManager.java:120) at com.android.commands.monkey.ape.naming.NamingFactory.rebuild(NamingFactory.java:425) at com.android.commands.monkey.ape.naming.NamingFactory.checkActionRefinement(NamingFactory.java:1070) at com.android.commands.monkey.ape.naming.NamingFactory.actionRefinement(NamingFactory.java:1119) at com.android.commands.monkey.ape.naming.AbstractNamingManager.actionRefinement(AbstractNamingManager.java:46) at com.android.commands.monkey.ape.model.Model.actionRefinement(Model.java:464) at com.android.commands.monkey.ape.agent.StatefulAgent.checkAndRefineOverAbstractedState(StatefulAgent.java:748) at com.android.commands.monkey.ape.agent.StatefulAgent.checkOverAbstractedState(StatefulAgent.java:696) at com.android.commands.monkey.ape.agent.StatefulAgent.preEvolveModel(StatefulAgent.java:679) at com.android.commands.monkey.ape.agent.StatefulAgent.updateStateInternal(StatefulAgent.java:587) at com.android.commands.monkey.ape.agent.ApeAgent.updateStateWrapper(ApeAgent.java:264) at com.android.commands.monkey.ape.agent.ApeAgent.updateState(ApeAgent.java:251) at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:782) at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1277) at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377) at com.android.commands.monkey.Monkey.run(Monkey.java:770) at com.android.commands.monkey.Monkey.main(Monkey.java:612) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359) [APE] Please report this bug to developers.
I have made some changes to fix this bug. Could you try to use the latest build from the source code? Thank you for reporting the bug.
java.lang.RuntimeException: An unvisited state has non-empty transitions. at com.android.commands.monkey.ape.agent.StatefulAgent.checkAndRefreshNewState(StatefulAgent.java:525) at com.android.commands.monkey.ape.agent.StatefulAgent.preCheckTrivialNewState(StatefulAgent.java:565) at com.android.commands.monkey.ape.agent.StatefulAgent.buildAndValidateNewState(StatefulAgent.java:574) at com.android.commands.monkey.ape.agent.StatefulAgent.updateStateInternal(StatefulAgent.java:586) at com.android.commands.monkey.ape.agent.ApeAgent.updateStateWrapper(ApeAgent.java:264) at com.android.commands.monkey.ape.agent.ApeAgent.updateState(ApeAgent.java:251) at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:782) at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1277) at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377) at com.android.commands.monkey.Monkey.run(Monkey.java:770) at com.android.commands.monkey.Monkey.main(Monkey.java:612) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)
I am working on this issue now. This seems to be introduced by recent changes.
New exception on the last build.
[APE] *** INFO *** Refinement takes 730380 ms.
[APE] >>>>>>>> SATA end step [16148][22766344531421]
[APE] Internal error
java.lang.NullPointerException: Attempt to invoke virtual method 'int com.android.commands.monkey.ape.naming.Naming$NamingResult.getNameSize()' on a null object reference
[APE] Please report this bug to developers.
at com.android.commands.monkey.ape.naming.Naming.naming(Naming.java:474)
at com.android.commands.monkey.ape.naming.Naming.getNames(Naming.java:399)
at com.android.commands.monkey.ape.tree.GUITreeBuilder.getStateKey(GUITreeBuilder.java:628)
at com.android.commands.monkey.ape.naming.AbstractPredicate.getState(AbstractPredicate.java:42)
at com.android.commands.monkey.ape.naming.AssertStatesFewerThan.eval(AssertStatesFewerThan.java:31)
at com.android.commands.monkey.ape.naming.NamingFactory.checkPredicate(NamingFactory.java:409)
at com.android.commands.monkey.ape.naming.NamingFactory.stateRefinement(NamingFactory.java:357)
at com.android.commands.monkey.ape.naming.NamingFactory.refine(NamingFactory.java:173)
at com.android.commands.monkey.ape.naming.NamingFactory.refine(NamingFactory.java:269)
at com.android.commands.monkey.ape.naming.NamingFactory.refine(NamingFactory.java:257)
at com.android.commands.monkey.ape.naming.NamingFactory.resolveNonDeterminism(NamingFactory.java:135)
at com.android.commands.monkey.ape.naming.AbstractNamingManager.resolveNonDeterminism(AbstractNamingManager.java:42)
at com.android.commands.monkey.ape.model.Model.resolveNonDeterministicTransitions(Model.java:330)
at com.android.commands.monkey.ape.agent.StatefulAgent.checkNonDeterministicTransitions(StatefulAgent.java:628)
at com.android.commands.monkey.ape.agent.StatefulAgent.updateStateInternal(StatefulAgent.java:597)
at com.android.commands.monkey.ape.agent.ApeAgent.updateStateWrapper(ApeAgent.java:265)
at com.android.commands.monkey.ape.agent.ApeAgent.updateState(ApeAgent.java:252)
at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:788)
at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1284)
at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377)
at com.android.commands.monkey.Monkey.run(Monkey.java:770)
at com.android.commands.monkey.Monkey.main(Monkey.java:612)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)
Hi, could you share the app that triggered the crash?
The refinement takes about 700s in the log. There must be something wrong. I have just disabled one kind of refinement that may trigger a heavy model reconstruction in https://github.com/tianxiaogu/ape/commit/6ad14a2c22371fa19a6d52f4d4a5474818e598ea.
Hi, could you share the app that triggered the crash?
The refinement takes about 700s in the log. There must be something wrong. I have just disabled one kind of refinement that may trigger a heavy model reconstruction in 6ad14a2.
sina-weibolite,v10.3.3 Command :
set SERIAL=SN && ape.py -p com.sina.weibolite --running-minutes 720 --ape sata
Another reporting error but not affecting normal operation . Thank you for the reply.
java.util.concurrent.TimeoutException: No idle state with idle timeout: 1000 within global timeout: 10000
at android.app.UiAutomation.waitForIdle(UiAutomation.java:783)
at com.android.commands.monkey.MonkeySourceApe.getRootInActiveWindowSlow(MonkeySourceApe.java:472)
at com.android.commands.monkey.ape.agent.StatefulAgent.checkAndRefreshNewState(StatefulAgent.java:510)
at com.android.commands.monkey.ape.agent.StatefulAgent.preCheckTrivialNewState(StatefulAgent.java:570)
at com.android.commands.monkey.ape.agent.StatefulAgent.buildAndValidateNewState(StatefulAgent.java:579)
at com.android.commands.monkey.ape.agent.StatefulAgent.updateStateInternal(StatefulAgent.java:591)
at com.android.commands.monkey.ape.agent.ApeAgent.updateStateWrapper(ApeAgent.java:265)
at com.android.commands.monkey.ape.agent.ApeAgent.updateState(ApeAgent.java:252)
at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:788)
at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1284)
at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377)
at com.android.commands.monkey.Monkey.run(Monkey.java:770)
at com.android.commands.monkey.Monkey.main(Monkey.java:612)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)
Error that causes the APE to crash . I will try your patch 6ad14a2 later.
java.lang.IllegalStateException: Inconsistent naming update.
at com.android.commands.monkey.ape.naming.AbstractNamingManager.updateNaming(AbstractNamingManager.java:131)
at com.android.commands.monkey.ape.naming.NamingFactory.rebuild(NamingFactory.java:230)
at com.android.commands.monkey.ape.naming.NamingFactory.resolveNonDeterminism(NamingFactory.java:139)
at com.android.commands.monkey.ape.naming.AbstractNamingManager.resolveNonDeterminism(AbstractNamingManager.java:42)
at com.android.commands.monkey.ape.model.Model.resolveNonDeterministicTransitions(Model.java:330)
at com.android.commands.monkey.ape.agent.StatefulAgent.checkNonDeterministicTransitions(StatefulAgent.java:628)
at com.android.commands.monkey.ape.agent.StatefulAgent.updateStateInternal(StatefulAgent.java:597)
at com.android.commands.monkey.ape.agent.ApeAgent.updateStateWrapper(ApeAgent.java:265)
at com.android.commands.monkey.ape.agent.ApeAgent.updateState(ApeAgent.java:252)
at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:788)
at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1284)
at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377)
at com.android.commands.monkey.Monkey.run(Monkey.java:770)
at com.android.commands.monkey.Monkey.main(Monkey.java:612)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)
Known OOM was found after running 5h on your new commit 6ad14a2 .
java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available
I have the following questions, please answer them at your convenience, thank you.
(1) What kind of refinement had been disabled in 6ad14a2 ? Is this kind refinement only triggered for specific apps?
(2) Why is OOM so frequent? What's the recycling mechanism for the code?
(3) How long is APE expected to keep running? If I want the tool to run for 12h, how should I optimize your model?
[APE] >>>>>>>> SATA end step [644][10414526109924] [APE] Internal error java.lang.RuntimeException: Conflict: not implement yet! at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:142) at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:75) at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:126) at com.android.commands.monkey.ape.naming.StateNamingManager.updateNaming(StateNamingManager.java:75) at com.android.commands.monkey.ape.naming.AbstractNamingManager.updateNaming(AbstractNamingManager.java:120) at com.android.commands.monkey.ape.naming.NamingFactory.rebuild(NamingFactory.java:425) at com.android.commands.monkey.ape.naming.NamingFactory.checkActionRefinement(NamingFactory.java:1070) at com.android.commands.monkey.ape.naming.NamingFactory.actionRefinement(NamingFactory.java:1119) at com.android.commands.monkey.ape.naming.AbstractNamingManager.actionRefinement(AbstractNamingManager.java:46) at com.android.commands.monkey.ape.model.Model.actionRefinement(Model.java:464) at com.android.commands.monkey.ape.agent.StatefulAgent.checkAndRefineOverAbstractedState(StatefulAgent.java:748) at com.android.commands.monkey.ape.agent.StatefulAgent.checkOverAbstractedState(StatefulAgent.java:696) at com.android.commands.monkey.ape.agent.StatefulAgent.preEvolveModel(StatefulAgent.java:679) at com.android.commands.monkey.ape.agent.StatefulAgent.updateStateInternal(StatefulAgent.java:587) at com.android.commands.monkey.ape.agent.ApeAgent.updateStateWrapper(ApeAgent.java:264) at com.android.commands.monkey.ape.agent.ApeAgent.updateState(ApeAgent.java:251) at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:782) at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1277) at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377) at com.android.commands.monkey.Monkey.run(Monkey.java:770) at com.android.commands.monkey.Monkey.main(Monkey.java:612) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359) [APE] Please report this bug to developers.