Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run Exception #4

Open
sdhuie opened this issue Jul 25, 2020 · 11 comments
Open

Run Exception #4

sdhuie opened this issue Jul 25, 2020 · 11 comments

Comments

@sdhuie
Copy link

sdhuie commented Jul 25, 2020

[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
Copy link
Author

sdhuie commented Jul 25, 2020

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

@sdhuie
Copy link
Author

sdhuie commented Jul 25, 2020

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
Copy link
Author

sdhuie commented Jul 25, 2020

[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
Copy link
Owner

[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
Copy link
Owner

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
Copy link
Author

sdhuie commented Jul 27, 2020

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
Copy link
Owner

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.

@sdhuie
Copy link
Author

sdhuie commented Jul 27, 2020

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
Copy link
Author

sdhuie commented Jul 27, 2020

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
Copy link
Author

sdhuie commented Jul 27, 2020

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
Copy link
Author

sdhuie commented Jul 28, 2020

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants