集群前两天在正常运行状况下忽然出现BE大规模宕机的状况,开始认为一个查询致使的,停掉这个查询接口之后,发现仍是出现,经过be.out日志发现以下异常信息:git
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宕机github
最后在社区陈明雨大神的指导下,社区已经有人提交了这个Patch,打上这个补丁之后,问题解决json
Fix bug that BE core will loading empty json arrayapi
由于目前这个Patch尚未在发行版中,为了方便你们使用,我编译了一个版本放在了百度网盘,你们能够根据本身须要下载jsonp
连接:https://pan.baidu.com/s/1fSFNsepAGwWbswEZwe3EBw
提取码:eyn1
这个里面的包是打了下面这个补丁的,编译好的包
你们使用Stream load 导入数据(直接和BE通信),若是出现空json字符串会致使BE down的状况,你们尽快打上这个补丁url