bilibili / ijkplayer

Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
GNU General Public License v2.0
32.5k stars 8.12k forks source link

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 2979 (Thread-35) #4147

Open JianYiLead opened 6 years ago

JianYiLead commented 6 years ago

play video with ijkplayer, then finish this activity, after seconds, app crashed. Below is the log detail. The device is Nokia/TA-1041_00CN(Android 8.0.0)

03-31 15:58:48.845 2077-2979/com.weihe.myhome A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 2979 (Thread-35) 03-31 15:58:48.944 2990-2990/? A/DEBUG: 03-31 15:58:48.944 2990-2990/? A/DEBUG: Build fingerprint: 'Nokia/TA-1041_00CN/C1N:8.0.0/OPR1.170623.026/00CN_1_34C:user/release-keys' 03-31 15:58:48.944 2990-2990/? A/DEBUG: Revision: '0' 03-31 15:58:48.944 2990-2990/? A/DEBUG: ABI: 'arm64' 03-31 15:58:48.944 2990-2990/? A/DEBUG: pid: 2077, tid: 2979, name: Thread-35 >>> com.weihe.myhome <<< 03-31 15:58:48.944 2990-2990/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGVMAPERR), fault addr 0x8 03-31 15:58:48.945 2990-2990/? A/DEBUG: Cause: null pointer dereference 03-31 15:58:48.945 2990-2990/? A/DEBUG: x0 0000000000000000 x1 0000000000000000 x2 0000000000000b68 x3 0000000000000000 03-31 15:58:48.945 2990-2990/? A/DEBUG: x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 000000736d3fe320 03-31 15:58:48.945 2990-2990/? A/DEBUG: x8 e05ededd777c6fee x9 e05ededd777c6fee x10 0000000000000000 x11 0000000000000000 03-31 15:58:48.945 2990-2990/? A/DEBUG: x12 0000000000000000 x13 000000736d3fe2c0 x14 00000000ffffffff x15 00000000001fe280 03-31 15:58:48.945 2990-2990/? A/DEBUG: x16 00000073703baf78 x17 00000073932b6f90 x18 0000007390319680 x19 00000000ffffffff 03-31 15:58:48.945 2990-2990/? A/DEBUG: x20 000000735760d000 x21 0000000000000008 x22 000000735760eba8 x23 00000073724e0c00 03-31 15:58:48.945 2990-2990/? A/DEBUG: x24 0000000000000000 x25 000000737491fc10 x26 000000738644d240 x27 0000007370e92fd0 03-31 15:58:48.945 2990-2990/? A/DEBUG: x28 0000007370e95b90 x29 000000736f964ed8 x30 0000007370e610a4 03-31 15:58:48.945 2990-2990/? A/DEBUG: sp 000000736f964ca0 pc 0000007370e610b4 pstate 0000000060000000 03-31 15:58:48.948 2990-2990/? A/DEBUG: backtrace: 03-31 15:58:48.948 2990-2990/? A/DEBUG: #00 pc 00000000000180b4 /data/app/com.weihe.myhome-5iKlmRQRyOnGn-ZRtdww==/lib/arm64/libijkplayer.so 03-31 15:58:48.948 2990-2990/? A/DEBUG: #01 pc 00000000000199b8 /data/app/com.weihe.myhome-5iKlmRQRyOnGn-ZRtdww==/lib/arm64/libijkplayer.so 03-31 15:58:48.948 2990-2990/? A/DEBUG: #02 pc 000000000001d624 /data/app/com.weihe.myhome-5iKlmRQRyOnGn-ZRtdw_w==/lib/arm64/libijkplayer.so (ffp_wait_stopl+28) 03-31 15:58:48.948 2990-2990/? A/DEBUG: #03 pc 0000000000025430 /data/app/com.weihe.myhome-5iKlmRQRyOnGn-ZRtdw_w==/lib/arm64/libijkplayer.so (ijkmp_shutdownl+56) 03-31 15:58:48.948 2990-2990/? A/DEBUG: #04 pc 000000000002a868 /data/app/com.weihe.myhome-5iKlmRQRyOnGn-ZRtdww==/lib/arm64/libijkplayer.so 03-31 15:58:48.948 2990-2990/? A/DEBUG: #05 pc 000000000003394c /data/app/com.weihe.myhome-5iKlmRQRyOnGn-ZRtdw_w==/oat/arm64/base.odex (offset 0x31000) 03-31 15:58:53.175 1047-1047/? E//system/bin/tombstoned: Tombstone written to: /data/tombstones//tombstone_09 03-31 15:58:53.204 27873-27873/? E/STBMonitorReceiver: dropboxTag:data_app_native_crash;dropboxTime:1522483133181 03-31 15:58:53.212 27873-27873/? E/STBIntentService: Service Started.. 03-31 15:58:53.244 27873-27873/? E/STBMonitorReceiver: dropboxTag:SYSTEM_TOMBSTONE;dropboxTime:1522483133202 03-31 15:58:53.256 27873-2996/? E/StabilityMonitor: [APRReport] get APRReport from memory

xksds commented 6 years ago

stop调用的逻辑不合理。 你看看是否多次调用stop或者stop后又有其他操作。

hixin commented 5 years ago

自己尝试修改了下,求帮忙测试 https://github.com/hixin/ijkplayer/tree/k0.6.2_bugfix

修改原理: https://github.com/hixin/ijkplayer/blob/k0.6.2_bugfix/ijkmedia/ijkplayer/ijkplayer.c 函数ijkmp_shutdown_l加锁同步,避免多线程引发问题,编译后各平台的so已上传