Skip to content

SIGBUS(BUS_ADRERR) 崩溃 #249

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
logwee opened this issue Jun 14, 2017 · 13 comments
Closed

SIGBUS(BUS_ADRERR) 崩溃 #249

logwee opened this issue Jun 14, 2017 · 13 comments

Comments

@logwee
Copy link

logwee commented Jun 14, 2017

#00 pc 000177ec /system/lib/libc.so (__memcpy_base+36) [armeabi-v7a]
#1 pc 00004798 /system/lib/libz.so [armeabi-v7a]
#2 pc 0000505c /system/lib/libz.so (deflate+280) [armeabi-v7a]
#3 pc 00009633 /data/app/com.xx.aa/lib/arm/libmarsxlog.so (LogBuffer::Write(void const*, unsigned int)+114) [armeabi-v7a]
#4 pc 00005c4f /data/app/com.xx.aa/lib/arm/libmarsxlog.so [armeabi-v7a]
#5 pc 00004ee3 /data/app/com.xx.aa/lib/arm/libmarsxlog.so (Java_com_tencent_mars_xlog_Xlog_logWrite2+266) [armeabi-v7a]
#6 pc 0170ca6d /data/app/com.xx.aa/oat/arm/base.odex (oatexec+9357933) [armeabi]

线上出现的,各种机型和系统版本都有

@buptlingfeng
Copy link

buptlingfeng commented Jun 14, 2017 via email

@garryyan
Copy link
Collaborator

这个问题,我们在关注,目前没有大的进展,同时如果大家有什么发现或者可能的原因都可以提给我们。

@logwee
Copy link
Author

logwee commented Jun 14, 2017

你们都是用NDK r11来编译吗

@buptlingfeng
Copy link

buptlingfeng commented Jun 14, 2017 via email

@ailichao
Copy link

跪求解决 已经是版本中top1的crash了

@garryyan
Copy link
Collaborator

garryyan commented Jun 19, 2017

@ailichao 什么cpu架构 用最新的代码试一下

@HomHomLin
Copy link

我也遇到了这个问题,x86和armv7都会,我感觉应该是你们在使用mmap的时候有问题,话说这个微信真的有在使用吗?

@garryyan
Copy link
Collaborator

微信确实在用。 这里逻辑已经走查过一遍了,暂时没看出来问题,考虑mmap文件被其他软件删除掉的可能。下个版本会加个mmap文件的保护。

@garryyan
Copy link
Collaborator

garryyan commented Jun 19, 2017

@HomHomLin @ailichao 你们用的时候把应用的data下的文件路径作为缓存目录传进去

Xlog.appenderOpen(Xlog.LEVEL_INFO, Xlog.AppednerModeAsync, "", logPath, "MarsSample");

也即第三个参数不要传空,给 你应用程序包目录下的文件路径, 比如 微信会给 /data/data/com.tencent.mm/files/xlog

@lucky-chen
Copy link

@garryyan 我在本地测试时,尝试过手动删除映射的mmap文件,但没有出现异常

@garryyan
Copy link
Collaborator

garryyan commented Jun 19, 2017

这个问题已查明。
原因:mmap 文件放在sdcard目录被删除掉或者sdcard短时间内不可用导致用时crash。
暂时的解决办法:appenderOpen时第三个参数,缓存路径不要传空串,传你应用程序包目录下的文件路径, 比如 微信会给 /data/data/com.tencent.mm/files/xlog。这样 mmap文件会放在这个路径,测试办法:找一台root的手机,看你传的缓存目录里是否有mmap文件。
后续我会试图找到不使用缓存路径的解决办法。

注意:日志不要放在这个目录,不然就太占 data 空间了。缓存目录类似日志目录,要单独目录,防止清理逻辑误删其他文件

@garryyan garryyan added the bug label Jun 19, 2017
@garryyan
Copy link
Collaborator

#204

@logwee
Copy link
Author

logwee commented Jul 12, 2017

我设置了缓存路劲,现在有丢日志的现象;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants