android - Why parsing StackOverflowException throws OOM? -
i noticed, app users got error:
fatal exception: java.lang.outofmemoryerror: outofmemoryerror thrown while trying throw outofmemoryerror; no stack available
so, had written pretty simple app:
public class mainactivity extends appcompatactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); log.d("tag", "" + getfoo()); } private int getfoo() { return getbar(); } private int getbar() { return getfoo(); } }
who throws oom while parsing stackoverflowexception not able stacktrace in log:
01-20 13:51:06.250 8134-8134/lt.neworld.java e/art: throwing outofmemoryerror "failed allocate 16482048 byte allocation 12515386 free bytes , 11mb until oom" 01-20 13:51:06.250 8134-8134/lt.neworld.java e/androidruntime: error reporting crash java.lang.outofmemoryerror: failed allocate 16482048 byte allocation 12515386 free bytes , 11mb until oom @ java.lang.abstractstringbuilder.enlargebuffer(abstractstringbuilder.java:95) @ java.lang.abstractstringbuilder.append0(abstractstringbuilder.java:125) @ java.lang.stringbuffer.append(stringbuffer.java:278) @ java.io.stringwriter.write(stringwriter.java:123) @ com.android.internal.util.fastprintwriter.flushlocked(fastprintwriter.java:358) @ com.android.internal.util.fastprintwriter.appendlocked(fastprintwriter.java:303) @ com.android.internal.util.fastprintwriter.write(fastprintwriter.java:625) @ com.android.internal.util.fastprintwriter.append(fastprintwriter.java:658) @ java.io.printwriter.append(printwriter.java:691) @ java.io.printwriter.append(printwriter.java:31) @ java.lang.throwable.printstacktrace(throwable.java:324) @ java.lang.throwable.printstacktrace(throwable.java:300) @ android.util.log.getstacktracestring(log.java:340) @ com.android.internal.os.runtimeinit.clog_e(runtimeinit.java:59) @ com.android.internal.os.runtimeinit.access$200(runtimeinit.java:43) @ com.android.internal.os.runtimeinit$uncaughthandler.uncaughtexception(runtimeinit.java:85) @ java.lang.threadgroup.uncaughtexception(threadgroup.java:693) @ java.lang.threadgroup.uncaughtexception(threadgroup.java:690)
have idea how can fix oom or how stacktrace in prod?
update:
threadgroup group = new threadgroup("threadgroup"); new thread(group, new runnable() { private void stackoverflow() { stackoverflow(); } @override public void run() { stackoverflow(); } }, "name", 20).start();
Comments
Post a Comment