Absturz durch "stack-Korruption entdeckt: abgebrochen"

Ich erhielt kürzlich die Beschwerde eines Nutzers, dass meine app stürzt ab. Ich habe extrahiert die folgenden, für den Nutzer Fehlerprotokolle und war in der Lage, um zu sehen, warum Fragen, wo, was:

12-17 10:31:12.446 I/PLAYLIST( 3158): PreparePlaylist
12-17 10:31:12.446 I/PLAYLIST( 3158): URL: http://f69cbd7a-3d91-4bf5-b4c6-ddb1175cf9e9.d40f2093-2013-4ad9-aec2-e99b015d61ca.070305e7-a706-4626-9ecb-777835065841.groovera.com/listen.pls
12-17 10:31:12.456 F/unknown ( 3158): stack corruption detected: aborted
12-17 10:31:12.466 D/Zygote  ( 2204): Process 3158 terminated by signal (6)
12-17 10:31:12.471 I/ActivityManager( 2256): Process com.android.Player:remote (pid 3158) has died.

Gab es einen Stapel von Korruption erkannt. Super, also wie finde ich heraus, warum das passiert?

Ich denke das Thema ist passiert, in dieser besonderen Klasse, da ich erwartet hatte, mehr log-Ausgabe von ihm, bevor er starb. Diese Klasse verwendet sockets, download playlist und analysieren es. Wie könnte ich verderben den stack? Ich haben sich mit stack-overflows in C/C++, aber wie kann ich das umgehen in Java?

Vielen Dank für Ihre Hilfe!

Wenn Ihr code ist das Lesen von URLs, hier ist Empfehlung.
die host-Namen sieht ziemlich lang
Es ist auch unter den 253 Zeichen-Grenze für FQDNs.
Ja, die url ist lang, aber es scheint unter der Grenze... ich kann es einfach nicht reproduzieren Sie das Problem auch mit der gleichen url... ich glaube zu verstehen, was sind die typischen Fälle, warum ein stack overflow in java passieren würde, könnte helfen, das Problem zu beheben... Über die URL-Verbindung Empfehlung, die ich"m, die bereits mit diesen Methoden 🙂
Sieht aus wie ein bug in der JVM zu mir. Ich kann mir nicht vorstellen, jede bytecode tatsächlich verdirbt stack. Es gibt keine Pointer in Java, um korrupte dem stack, und es ist die StackOverflowException für stack-überlauf.

InformationsquelleAutor Jona | 2010-12-17

Schreibe einen Kommentar