Drois Stream load JSON爲空致使BE宕機的狀況解決

集羣前兩天在正常運行狀況下忽然出現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

相關文章
相關標籤/搜索