kaka11chen opened a new pull request, #40857:
URL: https://github.com/apache/doris/pull/40857

   ## Proposed changes
   
   ### Issue
   ```
   
/var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1046:9:
 runtime error: reference binding to null pointer of type 'doris::StringRef'
       #0 0x55ee63eb0418 in std::vector<doris::StringRef, 
std::allocator<doris::StringRef>>::operator[](unsigned long) 
/var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1046:2
       #1 0x55ee63eb0418 in doris::Status 
doris::vectorized::OrcReader::_decode_string_non_dict_encoded_column<false>(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char>> const&, 
COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn> 
const&, orc::TypeKind const&, orc::EncodedStringVectorBatch*, unsigned long) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1172:39
       #2 0x55ee63ea2685 in doris::Status 
doris::vectorized::OrcReader::_decode_string_column<false>(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char>> const&, 
COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn> 
const&, orc::TypeKind const&, orc::ColumnVectorBatch*, unsigned long) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1124:16
       #3 0x55ee63e97e7a in doris::Status 
doris::vectorized::OrcReader::_fill_doris_data_column<false>(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char>> const&, 
COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, 
std::shared_ptr<doris::vectorized::IDataType const> const&, orc::Type const*, 
orc::ColumnVectorBatch*, unsigned long) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1365:16
       #4 0x55ee63b0e450 in doris::Status 
doris::vectorized::OrcReader::_orc_column_to_doris_column<false>(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char>> const&, 
COW<doris::vectorized::IColumn>::immutable_ptr<doris::vectorized::IColumn>&, 
std::shared_ptr<doris::vectorized::IDataType const> const&, orc::Type const*, 
orc::ColumnVectorBatch*, unsigned long) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1532:5
       #5 0x55ee63e99622 in doris::Status 
doris::vectorized::OrcReader::_fill_doris_data_column<false>(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char>> const&, 
COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, 
std::shared_ptr<doris::vectorized::IDataType const> const&, orc::Type const*, 
orc::ColumnVectorBatch*, unsigned long) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1410:9
       #6 0x55ee63b0e450 in doris::Status 
doris::vectorized::OrcReader::_orc_column_to_doris_column<false>(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char>> const&, 
COW<doris::vectorized::IColumn>::immutable_ptr<doris::vectorized::IColumn>&, 
std::shared_ptr<doris::vectorized::IDataType const> const&, orc::Type const*, 
orc::ColumnVectorBatch*, unsigned long) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1532:5
       #7 0x55ee63ad4f86 in 
doris::vectorized::OrcReader::get_next_block_impl(doris::vectorized::Block*, 
unsigned long*, bool*) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1714:13
       #8 0x55ee63ad093b in 
doris::vectorized::OrcReader::get_next_block(doris::vectorized::Block*, 
unsigned long*, bool*) 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exec/format/orc/vorc_reader.cpp:1547:5
   ```
   ### Solution
   [Fix] (orc-reader) Fix StringRef nullptr data in orc-reader. When string is 
empty in orc row batch, the data can point anything, maybe nullptr, StringRef 
has undefined behavior when data is nullptr.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to