-
Notifications
You must be signed in to change notification settings - Fork 312
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
Coredump on abnormal multiget #431
Comments
1.通过gdb查看core文件,是在打印 2.在onebox上尝试打印该log内容,同样coredump,并提示 3.由于1.11.6是使用dwarn打印,1.12.0使用dwarn_replica打印,但是1.11.6一直没有问题,所以尝试使用 4.由于dwarn_replcia和dwarn_f相比dwarn使用了fmt进行了一次format操作,所以怀疑是fmt的问题,然后升级fmt到6.0.0,发现仍然存在同样的问题 5.分别将使用dwarn和dwarn_f/dwarn_replcia最终执行到simple_logger::dsn_logv接口里的fmt变量获取到,发现两者不同: 6.最后通过查看代码发现,由于dwarn_f/dwarn_replcia最开始做了一次format,将fmt从 解决方案:重新实现dwan_f和dwarn_replica的实现,不要依赖于dwarn实现。重新实现底层的日志接口供dwan_f和dwarn_replica调用,该底层日志接口不要使用 |
不依赖与dwarn实现是什么意思? |
dwarn_f和dwarn_replica最后通过调用dwarn来实现的: |
dwarn_replica和dwarn_f都只是固定格式的dwarn。 |
@vagetablechicken 是不是立伟没讲清楚,是这样:
上面那个跑的是没问题的,下面这个是有问题的。这个问题怎么改呢,一种改的方式是下面这个:
|
dwarn确实是有可能的,我试过了,如果 |
Bug Report
Please answer these questions before submitting your issue. Thanks!
If possible, provide a recipe for reproducing the error.
Normal bootstrap.
No coredump.
Coredump:
Related code point: pegasus/src/server/pegasus_server_impl.cpp:932
1.12.0 Pegasus Server 1.12.0 (44a5293) release
The text was updated successfully, but these errors were encountered: