4204 SIGBUS(BUS_ADRERR)

崩溃
android
标签: #<Tag:0x00007fca760322b0> #<Tag:0x00007fca760320d0>

(godisdog) #1

jpush版本号:3.1.1,jcore版本号为:1.1.9。使用360加固。现在在我的app错误统计里极光推送的bug占了绝大部分,希望你们能看一下,共同提高极光推送的质量。

(1)、设备机型有:K1、K1S、K2、步步高H8s、步步高H9。android 版本号为4.2.2

#00 pc 00016c9c /system/lib/libc.so (memset+148) [armeabi-v7a]
2 #01 pc 00016829 /system/lib/libsqlite.so [armeabi-v7a]
3 #02 pc 0001c635 /system/lib/libsqlite.so [armeabi-v7a]
4 #03 pc 0001c753 /system/lib/libsqlite.so [armeabi-v7a]
5 #04 pc 00020273 /system/lib/libsqlite.so [armeabi-v7a]
6 #05 pc 0002959b /system/lib/libsqlite.so [armeabi-v7a]
7 #06 pc 00036f15 /system/lib/libsqlite.so [armeabi-v7a]
8 #07 pc 0003716f /system/lib/libsqlite.so [armeabi-v7a]
9 #08 pc 000371f5 /system/lib/libsqlite.so [armeabi-v7a]
10 #09 pc 0002f5fb /system/lib/libsqlite.so [armeabi-v7a]
11 #10 pc 00032b81 /system/lib/libsqlite.so [armeabi-v7a]
12 #11 pc 0003319d /system/lib/libsqlite.so [armeabi-v7a]
13 #12 pc 00034207 /system/lib/libsqlite.so [armeabi-v7a]
14 #13 pc 00034401 /system/lib/libsqlite.so [armeabi-v7a]
15 #14 pc 000344a3 /system/lib/libsqlite.so [armeabi-v7a]
16 #15 pc 00034557 /system/lib/libsqlite.so (sqlite3_prepare16_v2+10) [armeabi-v7a]
17 #16 pc 00056423 /system/lib/libandroid_runtime.so [armeabi-v7a]
18 #17 pc 0001e290 /system/lib/libdvm.so (dvmPlatformInvoke+112) [armeabi-v7a]
19 #18 pc 0004d411 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+396) [armeabi-v7a]
20 #19 pc 000276a0 /system/lib/libdvm.so [armeabi-v7a]
21 #20 pc 0002b57c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) [armeabi-v7a]
22 #21 pc 0005fc39 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272) [armeabi-v7a]
23 #22 pc 0005fc63 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20) [armeabi-v7a]
24 #23 pc 000547df /system/lib/libdvm.so [armeabi-v7a]
25 #24 pc 0000e3d8 /system/lib/libc.so (__thread_entry+72) [armeabi-v7a]
26 #25 pc 0000dac4 /system/lib/libc.so (pthread_create+160) [armeabi-v7a]
27 java:
28 android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
29 android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
30 android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:627)
31 android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:313)
32 android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:287)
33 android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
34 android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
35 android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
36 android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
37 android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
38 android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
39 android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
40 android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
41 android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:864)
42 android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:229)
43 android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
44 android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
45 cn.jiguang.d.a.e.android.database.sqlite.SQLiteDatabase getWritableDatabase()(Unknown Source)
46 cn.jiguang.d.a.e.android.database.sqlite.SQLiteDatabase getReadableDatabase()(Unknown Source)
47 cn.jiguang.d.a.e.boolean a(boolean)(Unknown Source)
48 cn.jiguang.d.a.g.cn.jiguang.d.a.g a(android.content.Context)(Unknown Source)
49 ##_parent_##4##_parent_##
50 ##_child_## long a(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,int,int,int,int,int)##_child_##
**_51 ##_child_## cn.jiguang.d.a.h a(java.lang.String)##_child_##_**
**_52 ##_child_## cn.jiguang.d.a.h a(android.database.Cursor)##_child_##_**
**_53 ##_child_## android.database.Cursor a()##_child_##_**
**_54 cn.jiguang.d.g.e.void a(android.content.Context)(Unknown Source)_**
**_55 ##_parent_##2##_parent_##_**
**_56 ##_child_## org.json.JSONObject a(cn.jiguang.d.a.h)##_child_##_**
**_57 ##_child_## void a(android.content.Context,int,long,int)##_child_##_**
**_58 cn.jiguang.d.b.f.void a()(Unknown Source)_**
59 ##_parent_##2##_parent_##
60 ##_child_## boolean a(android.content.Context)##_child_##
61 ##_child_## boolean a(int)##_child_##
62 cn.jiguang.d.b.f.void a()(Unknown Source)
63 ##_parent_##2##_parent_##
64 ##_child_## boolean a(android.content.Context)##_child_##
65 ##_child_## boolean a(int)##_child_##
66 cn.jiguang.d.b.f.void run()(Unknown Source)
67 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
68 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
69 java.lang.Thread.run(Thread.java:856)

(2)、设备机型有:K1、K1S、K2、步步高H8s、步步高H9。android 版本号为4.2.2
另外一个报告也是类似的报在了数据库上,我也贴一下

#00 pc 00016b7e /system/lib/libc.so [armeabi-v7a]
2 java:
3 android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
4 android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
5 android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:627)
6 android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:313)
7 android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:287)
8 android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
9 android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
10 android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
11 android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
12 android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
13 android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
14 android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
15 android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
16 android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:864)
17 android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:229)
18 android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
19 android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
_**20 cn.jiguang.d.a.e.android.database.sqlite.SQLiteDatabase getWritableDatabase()(Unknown Source)**_
_**21 cn.jiguang.d.a.e.android.database.sqlite.SQLiteDatabase getReadableDatabase()(Unknown Source)**_
_**22 cn.jiguang.d.a.e.boolean a(boolean)(Unknown Source)**_
_**23 cn.jiguang.d.a.g.cn.jiguang.d.a.g a(android.content.Context)(Unknown Source)**_
24 ##_parent_##4##_parent_##
25 ##_child_## long a(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,int,int,int,int,int)##_child_##
26 ##_child_## cn.jiguang.d.a.h a(java.lang.String)##_child_##
27 ##_child_## cn.jiguang.d.a.h a(android.database.Cursor)##_child_##
28 ##_child_## android.database.Cursor a()##_child_##
29 cn.jiguang.d.g.e.void a(android.content.Context)(Unknown Source)
30 ##_parent_##2##_parent_##
31 ##_child_## org.json.JSONObject a(cn.jiguang.d.a.h)##_child_##
32 ##_child_## void a(android.content.Context,int,long,int)##_child_##
33 cn.jiguang.d.b.f.void a()(Unknown Source)
34 ##_parent_##2##_parent_##
35 ##_child_## boolean a(android.content.Context)##_child_##
36 ##_child_## boolean a(int)##_child_##
37 cn.jiguang.d.b.f.void a()(Unknown Source)
38 ##_parent_##2##_parent_##
39 ##_child_## boolean a(android.content.Context)##_child_##
40 ##_child_## boolean a(int)##_child_##
41 cn.jiguang.d.b.f.void run()(Unknown Source)
42 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
43 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
44 java.lang.Thread.run(Thread.java:856)

(3)、 这个日志虽然看不出是不是极光推送的问题,但报告的进程是在multiprocess(17845)#unknown(25102)这里面。报告机型有:oppo a59m, oppo r9, oppo a37M, 荣耀KIW-TL00, android版本号为:5.1/5.1.1/5.0.2

# unknown(25102)
SIGBUS(BUS_ADRERR)
解析原始
1 #00 pc 7f991bfc <unknown>
2 #01 pc 00088419 /system/lib/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+8) [armeabi-v8]
3 #02 pc 00021bec /data/dalvik-cache/arm/system@framework@boot.art

(4)、ANR,报了几次ANR的bug,都能看到极光的影子。

com.android.org.conscrypt.OpenSSLDigestContext.finalize() timed out after 120 seconds。

05-02 21:48:30.608 27035 27035 E ANR_LOG : >>> msg's executing time is too long
3605-02 21:48:30.608 27035 27035 E ANR_LOG : Blocked msg = { when=-2s750ms what=110 target=android.app.ActivityThread$H obj=AppBindData{appInfo=ApplicationInfo{da509b0 my.app.packagename}} } , cost = 2731 ms
3705-02 21:48:30.608 27035 27035 E ANR_LOG : >>>Current msg List is:
3805-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <1> = { when=-2s748ms what=140 target=android.app.ActivityThread$H arg1=5 }
3905-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <2> = { when=-2s747ms what=114 target=android.app.ActivityThread$H obj=CreateServiceData{token=android.os.BinderProxy@658f029 **_className=cn.jpush.android.service.PushService_** packageName=my.app.packagename intent=null} }
4005-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <3> = { when=-2s747ms what=115 target=android.app.ActivityThread$H obj=ServiceArgsData{token=android.os.BinderProxy@658f029 startId=1 args=Intent { act=my.app.packagename.intent.RTC cmp=my.app.packagename/cn.jpush.android.service.PushService (has extras) }} }
4105-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <4> = { when=-2s182ms what=256 target=android.telephony.PhoneStateListener$1 obj=SignalStrength: 99 0 -76 -70 -120 -1 -1 25 -94 -11 24 2147483647 2147483647 4 4 gsm|lte }
4205-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <5> = { when=-2s93ms what=0 target=android.os.Handler callback=my.app.library.accountsdk.net.HttpTask$1 }
4305-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <6> = { when=-2s73ms what=0 target=android.os.Handler callback=my.app.library.accountsdk.net.HttpTask$1 }
4405-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <7> = { when=-1s215ms what=256 target=android.telephony.PhoneStateListener$1 obj=SignalStrength: 99 0 -76 -70 -120 -1 -1 25 -94 -11 46 2147483647 2147483647 4 4 gsm|lte }
4505-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <8> = { when=-42ms what=121 target=android.app.ActivityThread$H obj=BindServiceData{token=android.os.BinderProxy@658f029 intent=Intent { cmp=my.app.packagename/cn.jpush.android.service.PushService }} }
4605-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <9> = { when=-40ms what=0 target=android.os.Handler callback=com.tendcloud.tenddata.game.cs }
4705-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <10> = { when=-39ms what=115 target=android.app.ActivityThread$H obj=ServiceArgsData{token=android.os.BinderProxy@658f029 startId=2 args=Intent { act=my.app.packagename.run.action cmp=my.app.packagename/cn.jpush.android.service.PushService (has extras) }} }
4805-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <11> = { when=-22ms what=115 target=android.app.ActivityThread$H obj=ServiceArgsData{token=android.os.BinderProxy@658f029 startId=3 args=Intent { act=my.app.packagename.intent.INIT cmp=my.app.packagename/cn.jpush.android.service.PushService (has extras) }} }
4905-02 21:48:30.608 27035 27035 E ANR_LOG : Current msg <12> = { when=-13ms what=131 target=android.app.ActivityThread$H obj=android.app.ActivityThread$ProviderRefCount@5c0efae }
5005-02 21:48:30.608 27035 27035 E ANR_LOG : >>>CURRENT MSG DUMP OVER<<<

#2

你好,根据目前提供的信息:
问题1、2我们这边也是调用Android标准api getWritableDatabase 和 getReadableDatabase,而且已经增加catch处理,但是这里是native崩溃,所以不能生效。看设备似乎是一些特殊设备?这个需要再进一步确认

问题3,就目前的日志暂时无法定位问题

问题4,msg’s executing time is too long,应该是handleMessage里面阻塞了,Current msg List is:后面这是一个待处理的msg列表,并无直接原因说明是cn.jpush.android.service.PushService 的问题,具体还需要结合trace.txt来进行分析


(godisdog) #3

前两个问题目前来看好像跟机型有关系,不过这部分的崩溃比重在我的app里很大,在上线两周左右已经发生了650次崩溃,不知道在推送中哪些方面会用到数据库。在不影响使用的前提下,可不可以提供接口关闭这部分的功能?


#4

目前使用数据库就只有登录失败的统计,如果你们这边的应用是特殊设备上使用,有特殊需求可以联系我们这边的商务进行一些定制需求的哦。


(月剪西风) #5

现在极光推送中那个Android5.+系统,BUG:BUS_ADRERR这个问题非常多,麻烦尽快解决一下谢谢


#6

请提供你的 SDK 版本号,你捕获到的错误信息


(月剪西风) #7

compile ‘cn.jiguang.sdk:jpush:3.0.9’
compile ‘cn.jiguang.sdk:jcore:1.1.7’

# unknown(22223)
SIGBUS(BUS_ADRERR)
解析原始
1 #00 pc e393b3c8 <unknown>
2 #01 pc 000869f9 /system/lib/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+8) [armeabi-v7a]
3 #02 pc 000218ec /data/dalvik-cache/arm/system@framework@boot.art

(月剪西风) #8

我们这个跟第三个问题一模一样,崩溃特别多


#9

对错误的分析上述已经说明,需要更多信息进行下一步的确认,在确认问题之前无法做出优化,而且第一和第二个错误我们调的是 Android 标准的 API