mymeiyi opened a new pull request, #67633:
URL: https://github.com/apache/doris/pull/67633
Problem Summary: An expression-only load can legitimately omit the optional
destination-to-source direct slot map. FileScanner previously skipped
initializing its destination-ordered source descriptor vector in that case.
When an expression produced NULL under strict mode, output conversion indexed
the empty vector and could abort the BE.
```
*** SIGABRT unknown detail explain (@0x3f500000373) received by PID 883 (TID
2653 OR 0x7bd43699f700) from PID 883; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int,
siginfo_t*, void*) at ../src/common/signal_handler.h:418
1# 0x00007FE3F5E55140 in /lib/x86_64-linux-gnu/libpthread.so.0
2# raise in /lib/x86_64-linux-gnu/libc.so.6
3# abort in /lib/x86_64-linux-gnu/libc.so.6
4# 0x000055E3C2D186A7 in /opt/apache-doris/be/lib/doris_be
5# std::vector<doris::SlotDescriptor*,
std::allocator<doris::SlotDescriptor*> >::operator[](unsigned long) at
/mnt/disk2/meiyi/soft/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_vector.h:1263
6# doris::FileScanner::_convert_to_output_block(doris::Block*) at
./be/src/exec/scan/file_scanner.cpp:810
7#
doris::FileScanner::_process_src_block_after_read_for_load(doris::Block*) at
./be/src/exec/scan/file_scanner.cpp:902
8# doris::FileScanner::_process_src_block_after_read(doris::Block*) at
./be/src/exec/scan/file_scanner.cpp:868
9# doris::FileScanner::_get_block_wrapped(doris::RuntimeState*,
doris::Block*, bool*) at ./be/src/exec/scan/file_scanner.cpp:595
10# doris::FileScanner::_get_block_impl(doris::RuntimeState*, doris::Block*,
bool*) at ./be/src/exec/scan/file_scanner.cpp:514
11# doris::Scanner::get_block(doris::RuntimeState*, doris::Block*, bool*) at
./be/src/exec/scan/scanner.cpp:171
12# doris::Scanner::get_block_after_projects(doris::RuntimeState*,
doris::Block*, bool*) at ./be/src/exec/scan/scanner.cpp:138
13#
doris::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::ScannerContext>,
std::shared_ptr<doris::ScanTask>) at
./be/src/exec/scan/scanner_scheduler.cpp:193
```
Initialize one source descriptor entry for every destination expression,
using nullptr when no direct mapping exists. This preserves destination index
alignment and the existing strict-mode and NOT NULL filtering semantics.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]