pika
pika copied to clipboard
Segmentation fault in pika_client_conn , release 3.3.6
Is this a regression?
No
Description
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/home/service/var/parker/10261/pika/1/bin/pika -c /home/service/var/parker/1026'.
Program terminated with signal 11, Segmentation fault.
#0 SLL_Next (t=0x0) at src/linked_list.h:45
45 src/linked_list.h: No such file or directory.
Missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7_6.6.x86_64 libgcc-4.8.5-36.el7_6.2.x86_64 libstdc++-4.8.5-36.el7.x86_64
(gdb) bt
#0 SLL_Next (t=0x0) at src/linked_list.h:45
#1 SLL_PopRange (end=
Please provide a link to a minimal reproduction of the bug
No response
Screenshots or videos
No response
Please provide the version you discovered this bug in (check about page for version information)
Anything else?
No response
目前我们这边已经不维护 3.3.6 版本的 Pika 了,建议可以升级到 3.5.5 版本的 Pika
Bot detected the issue body's language is not English, translate it automatically.
At present, we no longer maintain the 3.3.6 version of Pika. It is recommended that you upgrade to the 3.5.5 version of Pika
3.5.5 底层数据格式跟3.3.6是一样的吗,可以原地升级吗
Bot detected the issue body's language is not English, translate it automatically.
3.5.5 Is the underlying data format the same as 3.3.6? Can it be upgraded on the spot?
3.5.5 底层数据格式跟3.3.6是一样的吗,可以原地升级吗
可以原地升级,如果是主从部署的话,需要一块升级,而且升级之后没办法在回滚到3.3.6. 具体原因是:
- 3.5与之前的版本主从全量同步没有办法做,因为3.5之前的主从全量数据同步是用的linux的rsync工具,3.5版本的主从全量同步用是pika自己实现的,协议不兼容。
- 3.5之前的版本用的rocksdb跟3.5版本不一样,因为rocksdb的不同版本的兼容性,导致3.5之前版本可以升级到3.5,但是3.5没有办法回滚到之前的3.3
Bot detected the issue body's language is not English, translate it automatically.
3.5.5 Is the underlying data format the same as 3.3.6? Can it be upgraded on the spot?
You can upgrade on the spot. If it is a master-slave deployment, you need to upgrade together, and you cannot roll back to 3.3.6 after the upgrade. The specific reasons are:
- There is no way to synchronize the full amount of master-slave data before 3.5, because the sync of the master-slave data before 3.5 is used for the rsync tool of Linux. The 3.5 version of master-slave full amount of synchronization is implemented by Pika itself, and the protocol is incompatible.
- The rocksdb used before 3.5 is different from the 3.5 version. Because of the compatibility of different versions of rocksdb, the version before 3.5 can be upgraded to 3.5, but 3.5 cannot roll back to the previous 3.3