Apache doris Stream load JSON为空导致BE宕机的情况解决

   Apache Doris 代码仓库地址:apache/incubator-doris 欢迎大家关注加星
 


集群前两天在正常运行情况下突然出现BE大规模宕机的情况,开始认为一个查询导致的,停掉这个查询接口以后,发现还是出现,通过be.out日志发现如下异常信息:

When loading json data like `[]` (an empty array). BE will crash with stack:

```
*** Aborted at 1612273824 (unix time) try "date -d @1612273824" if you are using GNU date ***
PC: @           0xe0cce7 rapidjson::GenericValue<>::Accept<>()
*** SIGSEGV (@0xe) received by PID 36798 (TID 0x7f7812114700) from PID 14; stack trace: ***
    @     0x7f791b74b470 (unknown)
    @           0xe0cce7 rapidjson::GenericValue<>::Accept<>()
    @          0x169ff79 _ZN5doris10JsonReader17_print_json_valueB5cxx11ERKN9rapidjson12GenericValueINS1_4UTF8IcEENS1_19MemoryPoolAllocatorINS1_12CrtAllocatorEEEEE
    @          0x16a0689 doris::JsonReader::_write_values_by_jsonpath()
    @          0x16a2cb4 doris::JsonReader::_handle_flat_array_complex_json()
    @          0x16a3761 doris::JsonScanner::get_next()
    @          0x1659bd4 doris::BrokerScanNode::scanner_scan()
    @          0x165a671 doris::BrokerScanNode::scanner_worker()
    @          0x281f67f execute_native_thread_routine
    @     0x7f791b5001c3 start_thread
    @     0x7f791b7fd12d __clone

最后排查发现Stream Load JSON数据字符串为空的情况,如果是通过FE是不会引起这个问题,但是直接通过BE,执行Stream Load操作就会引发上面的异常,导致be宕机

最后在社区陈明雨大神的指导下,社区已经有人提交了这个Patch,打上这个补丁以后,问题解决

Fix bug that BE core will loading empty json array

因为目前这个Patch还没有在发行版中,为了方便大家使用,我编译了一个版本放在了百度网盘,大家可以根据自己需要下载

链接:https://pan.baidu.com/s/1fSFNsepAGwWbswEZwe3EBw 
提取码:eyn1 
这个里面的包是打了下面这个补丁的,编译好的包
大家使用Stream load 导入数据(直接和BE通讯),如果出现空json字符串会导致BE down的情况,大家尽快打上这个补丁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值