tiflash 5.4 查询报错

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
tiflash 查询时候日志报错如下所示:
[2024/07/17 16:36:24.864 +08:00] [ERROR] [] [“DB::UnionBlockInputStream<mode, ignore_block>::~UnionBlockInputStream() [with DB::StreamUnionMode mod
e = (DB::StreamUnionMode)0; bool ignore_block = true]:Code: 0, e.displayText() = DB::Exception: write to tunnel which is already closed,tunnel4+16 grpc writ
es failed., e.what() = DB::Exception, Stack trace:\n\n0. bin/tiflash/tiflash(StackTrace::StackTrace()+0x16) [0x36c1d76]\n1. bin/tiflash/tiflash(DB::Exceptio
n::Exception(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, int)+0x26) [0x36b5ba6]\n2. bin/tiflash/tiflash(DB::MPPT
unnelBase<grpc_impl::ServerWritermpp::MPPDataPacket >::write(mpp::MPPDataPacket const&, bool)+0x1a55) [0x7c85555]\n3. bin/tiflash/tiflash(DB::MPPTunnelSet
BaseDB::MPPTunnel::write(mpp::MPPDataPacket&, short)+0x6c) [0x7c8607c]\n4. bin/tiflash/tiflash(void DB::StreamingDAGResponseWriter<std::shared_ptr<DB::MPP
TunnelSet> >::partitionAndEncodeThenWriteBlocks(std::vector<DB::Block, std::allocatorDB::Block >&, tipb::SelectResponse&) const+0x12a4) [0x7c55d54]
\n5. bin/tiflash/tiflash(void DB::StreamingDAGResponseWriter<std::shared_ptrDB::MPPTunnelSet >::batchWrite()+0x15d) [0x7c568ed]\n6. bin/tiflash/tif
lash(DB::StreamingDAGResponseWriter<std::shared_ptrDB::MPPTunnelSet >::write(DB::Block const&)+0x9d) [0x7c569ad]\n7. bin/tiflash/tiflash(DB::ExchangeSende
r::readImpl()+0x34) [0x7cebbc4]\n8. bin/tiflash/tiflash(DB::IProfilingBlockInputStream::read(DB::PODArray<unsigned char, 4096ul, Allocator, 15ul, 16u
l>*&, bool)+0x3bd) [0x6d8199d]\n9. bin/tiflash/tiflash(DB::IProfilingBlockInputStream::read()+0x17) [0x6d81b87]\n10. bin/tiflash/tiflash(DB::ParallelInputsP
rocessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0, true>::Handler, (DB::StreamUnionMode)0>::loop(unsigned long)+0x143) [0x7c51043]\n11. bin/tiflash/
tiflash(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0, true>::Handler, (DB::StreamUnionMode)0>::thread(unsigned long)+0x1cc)
[0x7c5166c]\n12. bin/tiflash/tiflash(_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJZN2DB13ThreadFactory9newThreadISt8functionIFvvEEJEEES_bNSt7__cxx1112ba
sic_stringIcSt11char_traitsIcESaIcEEEOT_DpOT0_EUlDpOT_E_EEEEE6_M_runEv+0x63) [0x7daf993]\n13. bin/tiflash/tiflash() [0x8abcbef]\n14. /lib64/libpthread.so.0(
+0x7dd5) [0x7fc9a05b4dd5]\n15. /lib64/libc.so.6(clone+0x6d) [0x7fc99ffdbead]\n”] [thread_id=2372325]

看日志是 tunnel 已经被关闭,但是请求仍然没写完?遇到这样的报错如何处理。高版本对此报错有优化吗?

看上去像这个issues

如果不是bug的话,就是多台tiflash在做mpp的时候,其中有一台因为oom挂了。

看看tiflash的uptime,确定一下,是不是这个原因。
如果是的话,考虑升级或好一些。
7.5版本的tiflash支持语句级的落盘,oom发生的概率会下降很多。
现在还有升级活动。

可以考虑一下。

升级版本看看

监控看 uptime 2个节点3个月,1个节点4周,应该没 OOM。
已经在和业务讨论升级方案了。

1 个赞

看来只能升级版本了,目前版本的确太低了。

学习下