ape icon indicating copy to clipboard operation
ape copied to clipboard

Run Exception

Open sdhuie opened this issue 5 years ago • 11 comments

[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.

sdhuie avatar Jul 25 '20 08:07 sdhuie

App had been running for 6h when the error occurred.

sdhuie avatar Jul 25 '20 08:07 sdhuie

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)

sdhuie avatar Jul 25 '20 08:07 sdhuie

[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.

sdhuie avatar Jul 25 '20 08:07 sdhuie

[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.

tianxiaogu avatar Jul 25 '20 16:07 tianxiaogu

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.

tianxiaogu avatar Jul 25 '20 16:07 tianxiaogu

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)

sdhuie avatar Jul 27 '20 00:07 sdhuie

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.

tianxiaogu avatar Jul 27 '20 06:07 tianxiaogu

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

sdhuie avatar Jul 27 '20 08:07 sdhuie

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)

sdhuie avatar Jul 27 '20 08:07 sdhuie

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)

sdhuie avatar Jul 27 '20 08:07 sdhuie

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?

sdhuie avatar Jul 28 '20 11:07 sdhuie