tianxiaogu / ape

Apache License 2.0
52 stars 19 forks source link

Run Exception #4

Open sdhuie opened 4 years ago

sdhuie commented 4 years ago

[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 commented 4 years ago

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

sdhuie commented 4 years ago

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 commented 4 years ago

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

tianxiaogu commented 4 years ago

[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 commented 4 years ago

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.

sdhuie commented 4 years ago

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)
tianxiaogu commented 4 years ago

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.

sdhuie commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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?