Re: why zygote crash?

1,381 views
Skip to first unread message

Ubuntu guy

unread,
Aug 25, 2011, 1:32:44 PM8/25/11
to android-platform
looks like a watchdog kill.

[ 08-24 20:04:46.299 184:0x110 W/Watchdog ]
*** WATCHDOG KILLING SYSTEM PROCESS: null

/data/anr/traces.txt should help in further analysis...

On Aug 25, 12:16 am, w wylhistory <wylhist...@gmail.com> wrote:
> Hi:
>
>                   Can someone give me some advices about why the zygote
> crash?
>                   the attachment  is  the detailed log include
> logcat,tombstones and some libs;
>                   below is one of the tombstones:
>
>                   *** *** *** *** *** *** *** *** *** *** *** *** *** ***
> *** ***
> pid: 91, tid: 91  >>> zygote <<<
> signal 6 (SIGABRT), code 0 (?), fault addr 000000b8
>  r0 fffffdfe  r1 bead26f8  r2 00000000  r3 00000000
>  r4 00000000  r5 aca4083b  r6 00000016  r7 0000008e
>  r8 bead2790  r9 4214ff48  10 4214ff34  fp 43043380
>  ip bead26e0  sp bead26d0  lr ad3654fb  pc afd0b854  cpsr 40000010
>  d0  400000003eaaaaab  d1  3ff0000041f00000
>  d2  bfd3441350baf6de  d3  c1493000c1323800
>  d4  4900000040dcb000  d5  000000000006e580
>  d6  4515a00000000800  d7  40800000c48ee000
>  d8  0000000000000000  d9  0000000000000000
>  d10 0000000000000000  d11 0000000000000000
>  d12 0000000000000000  d13 0000000000000000
>  d14 0000000000000000  d15 0000000000000000
>  scr 80000012
>
>          #00  pc 0000b854  /system/lib/libc.so
>          #01  pc 000654f8  /system/lib/libandroid_runtime.so
>          #02  pc 000120b4  /system/lib/libdvm.so
>          #03  pc 0004066c  /system/lib/libdvm.so
>          #04  pc 000396aa  /system/lib/libdvm.so
>          #05  pc 000172c4  /system/lib/libdvm.so
>          #06  pc 0001c048  /system/lib/libdvm.so
>          #07  pc 0001af3c  /system/lib/libdvm.so
>          #08  pc 000557e0  /system/lib/libdvm.so
>          #09  pc 00043028  /system/lib/libdvm.so
>          #10  pc 00036fe4  /system/lib/libdvm.so
>          #11  pc 0003304c  /system/lib/libandroid_runtime.so
>          #12  pc 00033de8  /system/lib/libandroid_runtime.so
>          #13  pc 00008ca2  /system/bin/app_process
>          #14  pc 00014dc8  /system/lib/libc.so
>
> code around pc:
> afd0b834 512fff1e ea00af31 e1a00000 e1a0c00d
> afd0b844 e92d00f0 e89c0070 e3a0708e ef000000
> afd0b854 e8bd00f0 e1b00000 512fff1e ea00af27
> afd0b864 e1a00000 e1a00000 e1a00000 e92d0090
> afd0b874 e3a0705d ef000000 e8bd0090 e1b00000
>
> code around lr:
> ad3654d8 db01428c 94023401 9a043601 dbd34296
> ad3654e8 2600ac06 1c219802 23002200 f7be9600
> ad3654f8 2800eade 466bdb06 331826ad 00b62400
> ad365508 e0299302 edf4f7bc 2f046807 e7e9d12c
> ad365518 1c286829 598b1c22 47989903 1c281c07
>
> stack:
>     bead2690  aca7aaa0  /system/lib/libdvm.so
>     bead2694  aca320ef  /system/lib/libdvm.so
>     bead2698  0000aca0
>     bead269c  aca403f3  /system/lib/libdvm.so
>     bead26a0  0000aca0
>     bead26a4  aca314c3  /system/lib/libdvm.so
>     bead26a8  0000aca0
>     bead26ac  aca422e9  /system/lib/libdvm.so
>     bead26b0  0000cf08
>     bead26b4  00000000
>     bead26b8  00000000
>     bead26bc  aca4177f  /system/lib/libdvm.so
>     bead26c0  0000aca0
>     bead26c4  0000aca0
>     bead26c8  df002777
>     bead26cc  e3a070ad
> #00 bead26d0  bead26f8
>     bead26d4  0000aca0
>     bead26d8  00000000
>     bead26dc  00000004
> #01 bead26e0  00000000
>     bead26e4  aca4083b  /system/lib/libdvm.so
>     bead26e8  00000016
>     bead26ec  4050d398
>     bead26f0  00000004
>     bead26f4  bead26f8
>     bead26f8  00200200
>     bead26fc  00000000
>     bead2700  00000000
>     bead2704  00000000
>     bead2708  00000000
>     bead270c  00000000
>     bead2710  00000000
>     bead2714  00000000
>     bead2718  00000000
>     bead271c  00000000
>     bead2720  00000000
>     bead2724  00000000
>     bead2728  00000000
>     bead272c  00000000
>     bead2730  00000000
>     bead2734  00000000
>     bead2738  00000000
>     bead273c  00000000
>     bead2740  00000000
>     bead2744  00000000
>     bead2748  00000000
>     bead274c  00000000
>     bead2750  00000000
>     bead2754  00000000
>     bead2758  00000000
>     bead275c  00000000
>     bead2760  00000000
>     bead2764  00000000
>     bead2768  00000000
>     bead276c  00000000
>     bead2770  00000000
>     bead2774  00000000
>     bead2778  00000000
>     bead277c  bead27b0
>     bead2780  00000004
>     bead2784  4003c7f0
>     bead2788  4214ff50
>     bead278c  aca120b8  /system/lib/libdvm.so
> #02 bead2790  421c2014
>     bead2794  0000cf08
>     bead2798  4003c7f0
>     bead279c  ad365445  /system/lib/libandroid_runtime.so
>     bead27a0  aca12280  /system/lib/libdvm.so
>     bead27a4  0000cf08
>     bead27a8  bead27b0
>     bead27ac  aca4066f  /system/lib/libdvm.so
> #03 bead27b0  4214ff48
>     bead27b4  43147614
>     bead27b8  ad365445  /system/lib/libandroid_runtime.so
>     bead27bc  bead2850
>     bead27c0  00000000
>     bead27c4  0000aca0
>     bead27c8  00000001
>     bead27cc  bead2850
>     bead27d0  40010360
>     bead27d4  bead2850
>     bead27d8  421c2014
>     bead27dc  0000cf08
>     bead27e0  4214ff48
>     bead27e4  aca396af  /system/lib/libdvm.so
> #04 bead27e8  0000cf08
>     bead27ec  43043c4a
>     bead27f0  4214ff60
>     bead27f4  bead2848
>     bead27f8  4003c7f0
>     bead27fc  aca172c8  /system/lib/libdvm.so
> #05 bead2800  43042fc8
>     bead2804  bead2848
>     bead2808  00000001
>     bead280c  00000000
>     bead2810  0000cf10
>     bead2814  0004dd28
>     bead2818  bead2b00
>     bead281c  aca9bcd8
>     bead2820  43043380
>     bead2824  aca1c04c  /system/lib/libdvm.so
> #06 bead2828  bead2848
>     bead282c  0000cf08
>     bead2830  aca1bfbc  /system/lib/libdvm.so
>     bead2834  421c1e40
>     bead2838  fffffe88
>     bead283c  aca1af40  /system/lib/libdvm.so
> #07 bead2840  0000cf08
>     bead2844  bead27e0
>     bead2848  43043380
>     bead284c  4214ffa4
>     bead2850  4050d398
>     bead2854  0000005b
>     bead2858  421c1fe0
>     bead285c  0004dd28
>     bead2860  0000cf08
>     bead2864  bead2800
>     bead2868  4214d300
>     bead286c  0000cf10
>     bead2870  4190bf70
>     bead2874  aca9c006
>     bead2878  aca9c048
>     bead287c  00000000
>     bead2880  00000000
>     bead2884  00000000
>     bead2888  00000000
>     bead288c  aca16ec8  /system/lib/libdvm.so
>     bead2890  aca16ef0  /system/lib/libdvm.so
>     bead2894  00000000
>     bead2898  aca9aaa8
>     bead289c  00002000
>     bead28a0  aca16f01  /system/lib/libdvm.so
>     bead28a4  aca16fa8  /system/lib/libdvm.so
>     bead28a8  aca17020  /system/lib/libdvm.so
>     bead28ac  aca16ec8  /system/lib/libdvm.so
>     bead28b0  aca16ef0  /system/lib/libdvm.so
>     bead28b4  aca16f20  /system/lib/libdvm.so
>     bead28b8  aca16f44  /system/lib/libdvm.so
>     bead28bc  aca72d45  /system/lib/libdvm.so
>     bead28c0  aca16ef0  /system/lib/libdvm.so
>     bead28c4  aca16f20  /system/lib/libdvm.so
>     bead28c8  aca16f44  /system/lib/libdvm.so
>     bead28cc  aca72d45  /system/lib/libdvm.so
>     bead28d0  aca9c1c0
>     bead28d4  00000000
>     bead28d8  400452b8
>     bead28dc  aca65313  /system/lib/libdvm.so
>     bead28e0  400453f8
>     bead28e4  00000000
>     bead28e8  400467f0
>     bead28ec  400467f0
>     bead28f0  00000020
>     bead28f4  00000020
>     bead28f8  4000c018
>     bead28fc  00000001
>     bead2900  ffffffff
>     bead2904  4000c280
>     bead2908  aca9c1c0
>     bead290c  aca96598
>     bead2910  400467f0
>     bead2914  aca65313  /system/lib/libdvm.so
>     bead2918  40047b50
>     bead291c  40047b50
>     bead2920  0000005e
>     bead2924  0000005e
>     bead2928  4000c018
>     bead292c  00000001
>     bead2930  ffffffff
>     bead2934  4000c280
>     bead2938  aca9c1c0
>     bead293c  aca96598
>     bead2940  40047b50
>     bead2944  aca65313  /system/lib/libdvm.so
>     bead2948  02000000
>     bead294c  aca96598
>     bead2950  0000005e
>     bead2954  fffffe88
>     bead2958  0000cf08
>     bead295c  40047b50
>     bead2960  0000005e
>     bead2964  aca4b6bf  /system/lib/libdvm.so
>     bead2968  0000005e
>     bead296c  40047b50
>     bead2970  00000000
>     bead2974  aca9bcd8
>     bead2978  fffffe88
>     bead297c  aca1acb0  /system/lib/libdvm.so
>     bead2980  0000005e
>     bead2984  aca96598
>     bead2988  00000027
>     bead298c  40014850
>     bead2990  00000000
>     bead2994  00000000
>     bead2998  40047b50
>     bead299c  aca5da37  /system/lib/libdvm.so
>     bead29a0  00000018
>     bead29a4  0000005e
>     bead29a8  00000000
>     bead29ac  afd10f18  /system/lib/libc.so
>     bead29b0  aca9bd80
>     bead29b4  40047b30
>     bead29b8  aca96598
>     bead29bc  fffffe88
>     bead29c0  00000000
>     bead29c4  00000000
>     bead29c8  00000000
>     bead29cc  aca3fc0d  /system/lib/libdvm.so
>     bead29d0  00000001
>     bead29d4  40047b30
>     bead29d8  40047b60
>     bead29dc  00000000
>     bead29e0  40047b30
>     bead29e4  aca4b19d  /system/lib/libdvm.so
>     bead29e8  0000cf08
>     bead29ec  aca4b67f  /system/lib/libdvm.so
>     bead29f0  0004dd28
>     bead29f4  4003c7f0
>     bead29f8  000000e9
>     bead29fc  40047b30
>     bead2a00  0000cf08
>     bead2a04  40047b30
>     bead2a08  4003c7f0
>     bead2a0c  aca4b6bf  /system/lib/libdvm.so
>     bead2a10  bead2a20
>     bead2a14  bead2ad0
>     bead2a18  00000002
>     bead2a1c  bead2ad0
>     bead2a20  40047b30
>     bead2a24  aca61d8b  /system/lib/libdvm.so
>     bead2a28  00000003
>     bead2a2c  00000003
>     bead2a30  aca96598
>     bead2a34  40047888
>     bead2a38  00000001
>     bead2a3c  00000017
>     bead2a40  00000000
>     bead2a44  00000000
>     bead2a48  00000000
>     bead2a4c  00000000
>     bead2a50  00000000
>     bead2a54  00000000
>     bead2a58  00000000
>     bead2a5c  00000000
>     bead2a60  00000000
>     bead2a64  00000000
>     bead2a68  00000000
>     bead2a6c  00000000
>     bead2a70  00000000
>     bead2a74  00000000
>     bead2a78  00000000
>     bead2a7c  00000000
>     bead2a80  00000000
>     bead2a84  00000000
>     bead2a88  00000000
>     bead2a8c  00000000
>     bead2a90  00000000
>     bead2a94  00000000
>     bead2a98  00000000
>     bead2a9c  00000000
>     bead2aa0  4003c7f0
>     bead2aa4  00000009
>     bead2aa8  421c1e40
>     bead2aac  0000cf08
>     bead2ab0  431bd788
>     bead2ab4  00000000
>     bead2ab8  00000000
>     bead2abc  00000000
>     bead2ac0  00000000
>     bead2ac4  aca557e3  /system/lib/libdvm.so
> #08 bead2ac8  aca96598
>     bead2acc  431bd788
>     bead2ad0  bead2ad8
>     bead2ad4  00000001
>     bead2ad8  40047960
>     bead2adc  aca3208f  /system/lib/libdvm.so
>     bead2ae0  00000007
>     bead2ae4  0000cf08
>     bead2ae8  bead2b64
>     bead2aec  421c1e40
>     bead2af0  4003c7f0
>     bead2af4  aca4302d  /system/lib/libdvm.so
> #09 bead2af8  bead2b00
>     bead2afc  bead2b64
>     bead2b00  00000000
>     bead2b04  aca7b538  /system/lib/libdvm.so
>     bead2b08  aca43009  /system/lib/libdvm.so
>     bead2b0c  0000aca0
>     bead2b10  421c1e40
>     bead2b14  aca36fe7  /system/lib/libdvm.so
> #10 bead2b18  aca7b538  /system/lib/libdvm.so
>     bead2b1c  421c1e40
>     bead2b20  ad36a28c  /system/lib/libandroid_runtime.so
>     bead2b24  bead2b64
>     bead2b28  00000086
>     bead2b2c  bead2b64
>     bead2b30  00000000
>     bead2b34  aca36f65  /system/lib/libdvm.so
>     bead2b38  aca94974
>     bead2b3c  ad380730
>     bead2b40  4003c7f0
>     bead2b44  ad33304f  /system/lib/libandroid_runtime.so
> #11 bead2b48  0000aca0
>     bead2b4c  bead2b64
>     bead2b50  000002b8
>     bead2b54  aca33dd9  /system/lib/libdvm.so
>     bead2b58  00089b00
>     bead2b5c  ad333ded  /system/lib/libandroid_runtime.so
>     bead2b60  421c1e40
>     bead2b64  40047960
> #12 bead2b68  0000ac10
>     bead2b6c  40047960
>     bead2b70  00008dba  /system/bin/app_process
>     bead2b74  00000001
>     bead2b78  af90d290
>     bead2b7c  af90d100
>     bead2b80  bead2b90
>     bead2b84  af905f4f  /system/lib/libcutils.so
>     bead2b88  00000000
>     bead2b8c  0000ab50
>     bead2b90  00000000
>     bead2b94  a811cd83  /system/lib/libutils.so
>     bead2b98  00000000
>     bead2b9c  00000000
>     bead2ba0  00000000
>     bead2ba4  bead2c7c
>     bead2ba8  bead2c14
>     bead2bac  00000001
>     bead2bb0  00000000
>     bead2bb4  a811ce67  /system/lib/libutils.so
>     bead2bb8  b0009ab4
>     bead2bbc  bead2be8
>     bead2bc0  ab20fd14
>     bead2bc4  bead2c7c
>     bead2bc8  00000001
>     bead2bcc  bead2be8
>     bead2bd0  00000004
>     bead2bd4  a811cea3  /system/lib/libutils.so
>     bead2bd8  bead2c7c
>     bead2bdc  ad33343d  /system/lib/libandroid_runtime.so
>     bead2be0  00003704
>     bead2be4  00000000
>     bead2be8  bead2d7f
>     bead2bec  0000aca0
>     bead2bf0  bead2c10
>     bead2bf4  00000000
>     bead2bf8  00000001
>     bead2bfc  0000000c
>     bead2c00  00008db3  /system/bin/app_process
>     bead2c04  00008ca5  /system/bin/app_process
> #13 bead2c08  00000001
>     bead2c0c  bead2d67
>     bead2c10  00009028
>     bead2c14  ad37f6c0
>     bead2c18  0000ab60
>     bead2c1c  0000000c
>     bead2c20  00000000
>     bead2c24  00000008
>     bead2c28  bead2d88
>     bead2c2c  00000000
>     bead2c30  00000000
>     bead2c34  00000000
>     bead2c38  00000000
>     bead2c3c  00008b04  /system/bin/app_process
>     bead2c40  00000005
>     bead2c44  afd41524
>     bead2c48  bead2c8c
>     bead2c4c  afd14dcb  /system/lib/libc.so
> #14 bead2c50  00000000
>     bead2c54  00008b04  /system/bin/app_process
>     bead2c58  00000000
>     bead2c5c  00000000
>     bead2c60  00000000
>     bead2c64  00000000
>     bead2c68  00000000
>     bead2c6c  b0004fa5  /system/bin/linker
>     bead2c70  00000005
>     bead2c74  bead2d67
>     bead2c78  bead2d7f
>     bead2c7c  bead2d88
>     bead2c80  bead2d94
>     bead2c84  bead2d9d
>     bead2c88  00000000
>     bead2c8c  bead2db3
>     bead2c90  bead2df0
>     bead2c94  bead2e18
>
>  20110824195703.log
> 1016KViewDownload
>
>  tombstone_02
> 17KViewDownload
>
>  tombstone_03
> 17KViewDownload
>
>  libdvm.so
> 837KViewDownload
>
>  app_process
> 7KViewDownload
>
>  libandroid_runtime.so
> 732KViewDownload
>
>  libc.so
> 361KViewDownload

w wylhistory

unread,
Aug 25, 2011, 3:16:27 AM8/25/11
to android-platform
20110824195703.log
tombstone_02
tombstone_03
libdvm.so
app_process
libandroid_runtime.so
libc.so

Chris Stratton

unread,
Aug 25, 2011, 3:02:49 PM8/25/11
to android-...@googlegroups.com
On Thursday, August 25, 2011 3:16:27 AM UTC-4, wylhistory wrote:               
                  Can someone give me some advices about why the zygote crash?
                  the attachment  is  the detailed log include logcat,tombstones and some libs;
                  below is one of the tombstones:                
                  *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 91, tid: 91  >>> zygote <<<
signal 6 (SIGABRT), code 0 (?), fault addr 000000b8
 r0 fffffdfe  r1 bead26f8  r2 00000000  r3 00000000
 r4 00000000  r5 aca4083b  r6 00000016  r7 0000008e
 r8 bead2790  r9 4214ff48  10 4214ff34  fp 43043380
 ip bead26e0  sp bead26d0  lr ad3654fb  pc afd0b854  cpsr 40000010
 d0  400000003eaaaaab  d1  3ff0000041f00000
 d2  bfd3441350baf6de  d3  c1493000c1323800
 d4  4900000040dcb000  d5  000000000006e580
 d6  4515a00000000800  d7  40800000c48ee000
 d8  0000000000000000  d9  0000000000000000
 d10 0000000000000000  d11 0000000000000000
 d12 0000000000000000  d13 0000000000000000
 d14 0000000000000000  d15 0000000000000000
 scr 80000012

         #00  pc 0000b854  /system/lib/libc.so
 
arm-linux-objdump -D libc.so | grep -B 10 -A 10 ' b854'

0000b840 <select>:
    b840:    e1a0c00d     mov    ip, sp
    b844:    e92d00f0     push    {r4, r5, r6, r7}
    b848:    e89c0070     ldm    ip, {r4, r5, r6}
    b84c:    e3a0708e     mov    r7, #142    ; 0x8e
    b850:    ef000000     svc    0x00000000
    b854:    e8bd00f0     pop    {r4, r5, r6, r7}

This is the dump of the main thread receiving a SIGABRT while waiting for select() to return - ie, while innocently minding it's own business (or perhaps while "stuck" there).  abort() is being called from some other thread (or SIGABRT signaled from some other process) for some unknown reason, so the rest of the meain-thread stack dump may not be relevant.

The main dvmAbort() routine attempts to cause a segfault in the responsible thread at address 0xdeadd00d, while the bionic libc abort() routine causes one in the thread at 0xdeadbaad.  Neither of these is happening, so it suggests a different cause.

While I can't find it documented anywhere, experimentally, the fault address of a SIGABRT appears to be the process or thread id of whatever raised the signal, in hex.  0xb8 in your case would be 184 decimal.  This occurs in your logs with tags such as ActivityManager which belong to the system_server process, so apparently system_server is ordering zygote to abort.

As "Ubuntu guy" pointed out, there's a line in the logs where this same process 184 says


> [ 08-24 20:04:46.299   184:0x110 W/Watchdog ]
>*** WATCHDOG KILLING SYSTEM PROCESS: null

What's very interesting about this is that the watchdog appears to be killing zygote itself, rather than one of it's forked and specialized children having a name.  I don't know for a fact why that would happen, but if you consider that zygote takes requests to create application and service processes, an idea comes to mind that it's taken too long to respond to one.  

What's puzzling is that there's nothing in the logs for the > 20 seconds before this happens.

Christopher Tate

unread,
Aug 25, 2011, 4:34:48 PM8/25/11
to android-...@googlegroups.com
Re watchdog activity, you should all probably go re-read my primer from May about diagnosing runtime restarts.  There's a section on how to do a post-mortem on a watchdog-triggered runtime restart:  <http://goo.gl/F3Rki>

--
christopher tate
android framework engineer



--
You received this message because you are subscribed to the Google Groups "android-platform" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-platform/-/VVP032CBlCIJ.

To post to this group, send email to android-...@googlegroups.com.
To unsubscribe from this group, send email to android-platfo...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/android-platform?hl=en.

w wylhistory

unread,
Aug 25, 2011, 9:30:30 PM8/25/11
to android-...@googlegroups.com
thanks Chris Stratton!
Yes,I am also puzzled;
normally this happens when some JNI functions cause a exception in the cpp codes,but no one catchs it,then return to the java codes,it will often cause such a crash;
But,as you say,I do not see any errors in the logcat before the crash,
It is very very strange!
thanks Christopher Tate,
I will see the reference in detail;

2011/8/26 Chris Stratton <cs0...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "android-platform" group.

w wylhistory

unread,
Aug 25, 2011, 10:40:38 PM8/25/11
to android-...@googlegroups.com
thanks Christopher Tate,
I have read the whole thread http://goo.gl/F3Rki and find it useful,thanks very much,
But I have a question about the /proc/last_kmsg,
I do not see the file /proc/last_kmsg even when the kernel panic in my device?
do you know how to produce it?


2011/8/26 Christopher Tate <ct...@google.com>
Reply all
Reply to author
Forward
0 new messages