1.19.5->2.0.1 升级失败

【详述】使用ansible进行版本升级
升级操作为,将be安装到不通的目录中,但使用了相同的配置文件和相同的数据目录
部分机器能够启动成功,部分机器启动报错,错误日志

terminate called after throwing an instance of ‘std::system_error’
what(): Invalid argument
*** Aborted at 1650262403 (unix time) try “date -d @1650262403” if you are using GNU date ***
PC: @ 0x7f216b5e2387 __GI_raise
*** SIGABRT (@0x10104) received by PID 65796 (TID 0x7f21661f7700) from PID 65796; stack trace: ***
@ 0x33a1be2 google::(anonymous namespace)::FailureSignalHandler()
@ 0x7f216c2ad630 (unknown)
@ 0x7f216b5e2387 __GI_raise
@ 0x7f216b5e3a78 __GI_abort
@ 0x157860d _ZN9__gnu_cxx27__verbose_terminate_handlerEv.cold
@ 0x4d3dfe6 __cxxabiv1::__terminate()
@ 0x4d3e051 std::terminate()
@ 0x4d3e1a5 __cxa_throw
@ 0x157a5e0 std::__throw_system_error()
terminate called recursively
@ 0x179a45b starrocks::TabletSchemaMap::emplace()
@ 0x177fe2e starrocks::TabletMeta::init_from_pb()
@ 0x1781b0f starrocks::TabletMeta::deserialize()
@ 0x1770e2b starrocks::TabletManager::load_tablet_from_meta()
@ 0x17517b8 ZNSt17_Function_handlerIFbllRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEZN9starrocks7DataDir4loadEvEUlliS7_E0_E9_M_invokeERKSt9_Any_dataOlSG_S7
@ 0x1783a8c ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEES3_EZN9starrocks17TabletMetaManager16traverse_headersEPNS5_7KVStoreERKSt8functionIFbllRKNSt7__cxx1112basic_stringIcS2_SaIcEEEEEEUlS3_S3_E_E9_M_invokeERKSt9_Any_dataOS3_SP
@ 0x184fe03 starrocks::KVStore::iterate()
@ 0x1785cad starrocks::TabletMetaManager::traverse_headers()
@ 0x1752f73 starrocks::DataDir::load()
@ 0x1738789 _ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJZN9starrocks13StorageEngine14load_data_dirsERKSt6vectorIPNS3_7DataDirESaIS7_EEEUlvE_EEEEE6_M_runEv
@ 0x4db83a0 execute_native_thread_routine
@ 0x7f216c2a5ea5 start_thread
@ 0x7f216b6aa98d __clone
@ 0x0 (unknown)
【背景】做过哪些操作?
由于新旧版本安装在了不同目录,所以很轻易的回退到了1.19版本继续使用。
尝试安装2.0.1 和2.0.3版本都失败了。错误日志一摸一样。
【业务影响】
【StarRocks版本】例如:1.19.5
【集群规模】例如:5fe(3 follower+2observer)+12be(fe与be不混部)
【机器信息】CPU虚拟核/内存/网卡,例如:64C/256G/万兆
【附件】


目前尝试升级了4台be节点,操作一样,其中2台成功2台失败

对比了升级成功的机器和失败的机器,以及旧的1.19.5版本的conf文件,一模一样

麻烦搜索下 有Fail to get master client from cache.这个报错嘛?

我看了一下我升级成功的be节点的日志信息,也有Fail to get master client from cache

好像失败的2.0.1没有这个报错,我梳理了一下时间线,这个报错可能是升级失败之后,回退到1.19.5版本产生的


报错时间是14:13:37 应该是回退后产生的

又测试升级了2台机器,目前3成功 3失败
发现一个规律,升级成功的3台机器,都发生过退役再重新加入集群。(当时的操作版本时DorisDB1.17.1)
而失败的3台机器都是从apache doris 0.13升级到的DorisDB 1.17.1 持续工作半年,又于近期继续升级到StarRocks1.18.5和1.19.5。期间从未发生过退役。

看着是端口占用了,可以check下be.conf中的端口是否空闲

我将旧版本停了,然后telnet下面的4个端口
doris_be_port: 9090
doris_be_webserver_port: 8040
doris_be_heartbeat_service_port: 9050
doris_be_brpc_port: 8060
4个端口都是返回refused,没有端口占用行为
但是新版本还是无法启动

没有这个报错
对应时间的warn没有任何日志
info文件里最后的日志就是加载tablet目录
load rowset from meta finished, data dir: /data/2/doris
I0419 11:19:25.429111 785031 data_dir.cpp:457] begin loading tablet from meta


目前来看就是输出该日志后执行的load_tablet_from_meta方法里面出了异常


我追踪到这个方法,之后就不知道怎么定位问题了


根据git信息,我发现2.0.4版本对这个文件有一个新的commit,打算用2.0.4版本测试升级一波

您好~ 您目前测试有进展嘛? 可以排查下 是不是bdb里面记录的有旧的机器信息: java -jar lib/je-7.3.7.jar DbGroupAdmin -helperHosts {ip:edit_log_port} -groupName PALO_JOURNAL_GROUP -dumpGroup

还没测试完,您给的命令我执行完了,看上去没有残留信息


2.0.4也失败了,报错信息和之前一样