Skip to content
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

日志文件经常会出现解压失败的情况 #161

Closed
xuwakao opened this issue Feb 28, 2017 · 18 comments
Closed

日志文件经常会出现解压失败的情况 #161

xuwakao opened this issue Feb 28, 2017 · 18 comments
Labels

Comments

@xuwakao
Copy link

xuwakao commented Feb 28, 2017

[F]decode_log_file.py decompress err, Error -3 while decompressing: invalid distance too far back
经常出现类似的解压错误,导致看不到日志。
不存在多进程写同一个文件的问题

@garryyan
Copy link
Collaborator

改加密算法了吗

@xuwakao
Copy link
Author

xuwakao commented Feb 28, 2017

没有,就是默认的

类似错误还有:
[F]decode_log_file.py decompress err, Error -3 while decompressing: invalid stored block lengths

@garryyan
Copy link
Collaborator

文件损坏或者写坏了,只在某个手机上出现 还是很多手机上都出现了

@xuwakao
Copy link
Author

xuwakao commented Feb 28, 2017

试了两台手机都是这样,le x820和huawei p6-c00

@garryyan
Copy link
Collaborator

比较大概率出现的话 建议review下代码

@xuwakao
Copy link
Author

xuwakao commented Feb 28, 2017

String logPath = Environment.getExternalStorageDirectory() + File.separator + getRootPath() + File.separator + "logger";
XLog.open(true, XLog.LEVEL_INFO, XLog.AppednerModeAsync, "", logPath, "marslog");
XLog.setConsoleLogOpen(isDebuggable());
Log.setLogImp(new XLog());

总共这就这么几行代码了。

会不会是我取日志的时机不对呢,现在是启动应用,然后把应用杀掉,然后取日志来看

@garryyan
Copy link
Collaborator

你应用有几个进程? 日志目录下有几个日志文件?

@xuwakao
Copy link
Author

xuwakao commented Feb 28, 2017

主进程还有一些第三方的推送进程,但是初始化只在主进程初始化了,目录下两个文件,一个是那个mmap2文件,一个是HLX.xlog日志文件

@garryyan
Copy link
Collaborator

还是怀疑你多个进程用了同一份文件,你在初始化xlog的地方加行logcat,看会打印几次

@xuwakao
Copy link
Author

xuwakao commented Feb 28, 2017

确认过肯定是不存在这种情况的

@garryyan
Copy link
Collaborator

那就比较麻烦了。 目前我们所遇到的所有的文件损坏的情况分两种:

  1. 多个进程写了一个文件,如果是这个原因一般比较容易重现
  2. 文件损坏, 如果是这个原因,出现概率很小

@xuwakao
Copy link
Author

xuwakao commented Feb 28, 2017

而且我也没有进行什么特殊的行为,就是初始化,然后正常的用。
想问一下,日志flush的时机是什么时候呢

@garryyan
Copy link
Collaborator

garryyan commented Feb 28, 2017

一般是主动调用flush或者appender_close的时候。如果没调用会在下次启动的时候进行flush上次的日志

@xuwakao
Copy link
Author

xuwakao commented Feb 28, 2017

AppednerModeSync是好的,AppednerModeAsync就会出现这种问题。。。

@garryyan
Copy link
Collaborator

xlog demo 在你出问题的手机上有问题吗

@buptlingfeng
Copy link

@garryyan 我觉得这个问题和我说的那个情况是一致的,就是说:日志压缩后的长度超过4K的情况下,会导致后续的日志不能解压缩

@garryyan
Copy link
Collaborator

garryyan commented May 4, 2017

确实存在单行日志压缩后长度长过4kb会导致解压不出来,我看下怎么修复

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

garryyan commented May 31, 2017

fixed mars-core 1.6.6 mars-xlog 1.0.3

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

No branches or pull requests

3 participants