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

v3.1.1 coredump 在slash::PosixMmapFile::Append #684

Closed
hotrhino opened this issue Jul 18, 2019 · 4 comments
Closed

v3.1.1 coredump 在slash::PosixMmapFile::Append #684

hotrhino opened this issue Jul 18, 2019 · 4 comments

Comments

@hotrhino
Copy link

#0 0x00007f8a5042bb0e in __memcpy_ssse3_back () from /lib64/libc.so.6
#1 0x00000000006828e5 in slash::PosixMmapFile::Append (this=0x7f89f801f4d0, data=...) at src/env.cc:512
#2 0x000000000068a157 in slash::BaseConf::WriteBack (this=this@entry=0x19706d0) at src/base_conf.cc:270
#3 0x0000000000606359 in PikaConf::ConfigRewrite (this=0x19706d0) at /data/pika_src/pika/src/pika_conf.cc:410
#4 0x00000000005d21b4 in ConfigRewrite (ret="", this=0x7f89f8001ab0) at /data/pika_src/pika/src/pika_admin.cc:1593
#5 ConfigCmd::Do (this=0x7f89f8001ab0, partition=...) at /data/pika_src/pika/src/pika_admin.cc:1005
#6 0x00000000005a2d98 in Cmd::ProcessDoNotSpecifyPartitionCmd (this=) at /data/pika_src/pika/src/pika_command.cc:547
#7 0x000000000061cd90 in PikaClientConn::DoCmd (this=0x7f8a20000908, argv=std::vector of length 2, capacity 2 = {...}, opt="config") at /data/pika_src/pika/src/pika_client_conn.cc:192
#8 0x000000000061dca1 in PikaClientConn::DealMessage (this=0x7f8a20000908, argv=std::vector of length 2, capacity 2 = {...}, response=0x7f8a20000980) at /data/pika_src/pika/src/pika_client_conn.cc:253
#9 0x000000000061a6f9 in PikaClientConn::BatchExecRedisCmd (this=0x7f8a20000908, argvs=std::vector of length 1, capacity 1 = {...}, response=0x7f8a20000980) at /data/pika_src/pika/src/pika_client_conn.cc:234
#10 0x000000000061a774 in PikaClientConn::DoBackgroundTask (arg=0x7f8a20009e20) at /data/pika_src/pika/src/pika_client_conn.cc:263
#11 0x000000000067fff7 in pink::ThreadPool::runInThread (this=0x197a4b0) at src/thread_pool.cc:183
#12 0x00000000006801b9 in pink::ThreadPool::Worker::WorkerMain (arg=) at src/thread_pool.cc:14
#13 0x00007f8a51710e25 in start_thread () from /lib64/libpthread.so.0
#14 0x00007f8a503d5bad in clone () from /lib64/libc.so.6

centos7.5 原先使用预编译的pika-linux-x86_64-v3.1.1.tar 发生coredump后 因为是提示内存对齐方面的错误,git拉源码切到v3.1.1编译 进行运行一会后照样coredump在同一个位置。

使用标准配置, 我有个三个redis库想合并到同一个pika里面,使用工具把三个库导入后,对每个库都使用redis-copy命令 及redis_instA<==>pika_instA redis_instB<==>pika_instA redis_instC<==>pika_instA, redis-copy三对一。 运行一会后coredump

@hotrhino
Copy link
Author

大概找到问题了 没有时间去深入源码 库维护人员看下吧。
基本都是在int PikaConf::ConfigRewrite()的时候coredump,里面最后一行WriteBack没有在锁范围内,里面有创建mmap文件的操作,WriteBack如果并行执行必然会导致问题。我把WriteBack纳入RWLock l(&rwlock_, true)内后不再coredump了

@Axlgrep
Copy link
Collaborator

Axlgrep commented Jul 19, 2019

好的, 我们跟一下

@Axlgrep
Copy link
Collaborator

Axlgrep commented Jul 19, 2019

#686 fixed

@hotrhino
Copy link
Author

好的 多谢。

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

No branches or pull requests

2 participants