[Bug] BE Crash with SIGSEGV in ByteArrayDictDecoder and std::out_of_range during Iceberg table scanning/loading
- Dominant language
- Java
- Stars
- 15.9k
- Forks
- 3.9k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 520
Description
### Search before asking
- [x] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues.
### Version
v4.0.2
### What's Wrong?
The Backend (BE) crashes consistently when reading or loading data into an Iceberg table. Based on the be.out logs, there are two distinct crash patterns occurring in the Parquet reader/Iceberg integration layer:
1. Pattern A (SIGSEGV): A segmentation fault occurs during Parquet dictionary decoding for ByteArray types.
* Signal: SIGSEGV address not mapped to object (@0x0)
* Location: doris::vectorized::ByteArrayDictDecoder::_decode_values
2. Pattern B (Exception): A std::out_of_range exception is thrown during schema initialization, likely related to schema evolution or nested fields.
* Error: terminate called after throwing an instance of 'std::out_of_range' what(): map::at
* Location: doris::vectorized::TableSchemaChangeHelper::StructNode::children_column_exists
### What You Expected?
The BE should handle Parquet decoding and Iceberg schema mapping gracefully without crashing.
### How to Reproduce?
1. Create an Iceberg table (with Parquet format).
2. (Optional) Perform some schema changes or ensure the data contains dictionary-encoded string columns.
3. Execute a query or a routine load that triggers the IcebergTableReader.
4. BE crashes during the scanning phase.
### Anything Else?
BE log:
```
SLF4J(W): Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
SLF4J(W): Found provider [org.slf4j.reload4j.Reload4jServiceProvider@3ecf72fd]
SLF4J(W): See https://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J(I): Actual provider is of type [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
start BE in local mode
INFO: java_cmd /usr/lib/jvm/java-17-openjdk-amd64/bin/java
INFO: jdk_version 17
StdoutLogger 2026-03-09 10:33:07,454 Start time: Mon Mar 9 10:33:07 CST 2026
INFO: java_cmd /usr/lib/jvm/java-17-openjdk-amd64/bin/java
INFO: jdk_version 17
OpenJDK 64-Bit Server VM warning: Option CriticalJNINatives was deprecated in version 16.0 and will likely be removed in a future release.
SLF4J(W): Class path contains multiple SLF4J providers.
SLF4J(W): Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
SLF4J(W): Found provider [org.slf4j.reload4j.Reload4jServiceProvider@3ecf72fd]
SLF4J(W): See https://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J(I): Actual provider is of type [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
start BE in local mode
*** Query id: 3c4cc3b03f914204-981a012558fa732e ***
*** is nereids: 1 ***
*** tablet id: 0 ***
*** Aborted at 1773216387 (unix time) try "date -d @1773216387" if you are using GNU date ***
*** Current BE git commitID: 30d2df0459 ***
*** SIGSEGV address not mapped to object (@0x0) received by PID 27942 (TID 32695 OR 0x7f81c60da700) from PID 0; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_release/doris/be/src/common/signal_handler.h:420
1# PosixSignals::chained_handler(int, siginfo_t*, void*) [clone .part.11] in /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so
2# JVM_handle_linux_signal in /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so
3# 0x00007F8B7CE22980 in /lib/x86_64-linux-gnu/libpthread.so.0
4# doris::Status doris::vectorized::ByteArrayDictDecoder::_decode_values(doris::COW::mutable_ptr&, std::shared_ptr&, doris::vectorized::ColumnSelectVector&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/byte_array_dict_decoder.cpp:132
5# doris::vectorized::ByteArrayDictDecoder::decode_values(doris::COW::mutable_ptr&, std::shared_ptr&, doris::vectorized::ColumnSelectVector&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/byte_array_dict_decoder.cpp:100
6# doris::vectorized::ColumnChunkReader::decode_values(doris::COW::mutable_ptr&, std::shared_ptr&, doris::vectorized::ColumnSelectVector&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_column_chunk_reader.cpp:318
7# doris::vectorized::ScalarColumnReader::_read_values(unsigned long, doris::COW::immutable_ptr&, std::shared_ptr&, doris::vectorized::FilterMap&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:312
8# doris::vectorized::ScalarColumnReader::read_column_data(doris::COW::immutable_ptr&, std::shared_ptr&, std::shared_ptr const&, doris::vectorized::FilterMap&, unsigned long, unsigned long*, bool*, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:668
9# doris::vectorized::RowGroupReader::_read_column_data(doris::vectorized::Block*, std::vector, std::allocator >, std::allocator, std::allocator > > > const&, unsigned long, unsigned long*, bool*, doris::vectorized::FilterMap&) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:435
10# doris::vectorized::RowGroupReader::next_batch(doris::vectorized::Block*, unsigned long, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:324
11# doris::vectorized::ParquetReader::get_next_block(doris::vectorized::Block*, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_reader.cpp:798
12# doris::vectorized::IcebergTableReader::get_next_block_inner(doris::vectorized::Block*, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/table/iceberg_reader.cpp:100
13# doris::vectorized::TableFormatReader::get_next_block(doris::vectorized::Block*, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/table/table_format_reader.h:82
14# doris::vectorized::FileScanner::_get_block_wrapped(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/file_scanner.cpp:472
15# doris::vectorized::FileScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/file_scanner.cpp:411
16# doris::vectorized::Scanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
17# doris::vectorized::Scanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner.cpp:87
18# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr, std::shared_ptr) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:173
19# std::_Function_handler, std::shared_ptr)::$_0::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /usr/local/ldb-toolchain-v0.26/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:292
20# doris::vectorized::ScannerSplitRunner::process_for(std::chrono::duration >) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:408
21# doris::vectorized::PrioritizedSplitRunner::process() at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/executor/time_sharing/prioritized_split_runner.cpp:104
22# doris::vectorized::TimeSharingTaskExecutor::_dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/executor/time_sharing/time_sharing_task_executor.cpp:572
23# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_release/doris/be/src/util/thread.cpp:461
24# start_thread in /lib/x86_64-linux-gnu/libpthread.so.0
25# __clone in /lib/x86_64-linux-gnu/libc.so.6
root@dev-wzh-75:/app/doris/apache-doris-4.0.2-bin-x64/be/log# tail -n 100 be.out
INFO: jdk_version 17
StdoutLogger 2026-03-06 10:48:28,391 Start time: Fri Mar 6 10:48:28 CST 2026
INFO: java_cmd /usr/lib/jvm/java-17-openjdk-amd64/bin/java
INFO: jdk_version 17
OpenJDK 64-Bit Server VM warning: Option CriticalJNINatives was deprecated in version 16.0 and will likely be removed in a future release.
SLF4J(W): Class path contains multiple SLF4J providers.
SLF4J(W): Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
SLF4J(W): Found provider [org.slf4j.reload4j.Reload4jServiceProvider@3ecf72fd]
SLF4J(W): See https://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J(I): Actual provider is of type [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
start BE in local mode
terminate called after throwing an instance of 'std::out_of_range'
what(): map::at
*** Query id: 5b42b99e5d2a4c76-bf7d7eb8d8ee9678 ***
*** is nereids: 1 ***
*** tablet id: 0 ***
*** Aborted at 1772765403 (unix time) try "date -d @1772765403" if you are using GNU date ***
*** Current BE git commitID: 30d2df0459 ***
*** SIGABRT unknown detail explain (@0x2e0d) received by PID 11789 (TID 12313 OR 0x7fb97aedc700) from PID 11789; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_release/doris/be/src/common/signal_handler.h:420
1# 0x00007FBB0351C980 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# __gnu_cxx::__verbose_terminate_handler() [clone .cold] in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
5# __cxxabiv1::__terminate(void (*)()) in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
6# 0x000055C454ECA479 in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
7# __cxa_rethrow.cold in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
8# std::__throw_out_of_range(char const*) in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
9# 0x000055C44F6C41D4 in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
10# doris::vectorized::TableSchemaChangeHelper::StructNode::children_column_exists(std::__cxx11::basic_string, std::allocator >) const at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/table/table_format_reader.h:195
11# doris::vectorized::ParquetReader::init_reader(std::vector, std::allocator >, std::allocator, std::allocator > > > const&, std::unordered_map, std::allocator >, std::variant, doris::ColumnValueRange<(doris::PrimitiveType)4>, doris::ColumnValueRange<(doris::PrimitiveType)5>, doris::ColumnValueRange<(doris::PrimitiveType)6>, doris::ColumnValueRange<(doris::PrimitiveType)7>, doris::ColumnValueRange<(doris::PrimitiveType)8>, doris::ColumnValueRange<(doris::PrimitiveType)9>, doris::ColumnValueRange<(doris::PrimitiveType)36>, doris::ColumnValueRange<(doris::PrimitiveType)37>, doris::ColumnValueRange<(doris::PrimitiveType)15>, doris::ColumnValueRange<(doris::PrimitiveType)10>, doris::ColumnValueRange<(doris::PrimitiveType)23>, doris::ColumnValueRange<(doris::PrimitiveType)11>, doris::ColumnValueRange<(doris::PrimitiveType)25>, doris::ColumnValueRange<(doris::PrimitiveType)12>, doris::ColumnValueRange<(doris::PrimitiveType)26>, doris::ColumnValueRange<(doris::PrimitiveType)20>, doris::ColumnValueRange<(doris::PrimitiveType)2>, doris::ColumnValueRange<(doris::PrimitiveType)19>, doris::ColumnValueRange<(doris::PrimitiveType)28>, doris::ColumnValueRange<(doris::PrimitiveType)29>, doris::ColumnValueRange<(doris::PrimitiveType)30>, doris::ColumnValueRange<(doris::PrimitiveType)35> >, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::variant, doris::ColumnValueRange<(doris::PrimitiveType)4>, doris::ColumnValueRange<(doris::PrimitiveType)5>, doris::ColumnValueRange<(doris::PrimitiveType)6>, doris::ColumnValueRange<(doris::PrimitiveType)7>, doris::ColumnValueRange<(doris::PrimitiveType)8>, doris::ColumnValueRange<(doris::PrimitiveType)9>, doris::ColumnValueRange<(doris::PrimitiveType)36>, doris::ColumnValueRange<(doris::PrimitiveType)37>, doris::ColumnValueRange<(doris::PrimitiveType)15>, doris::ColumnValueRange<(doris::PrimitiveType)10>, doris::ColumnValueRange<(doris::PrimitiveType)23>, doris::ColumnValueRange<(doris::PrimitiveType)11>, doris::ColumnValueRange<(doris::PrimitiveType)25>, doris::ColumnValueRange<(doris::PrimitiveType)12>, doris::ColumnValueRange<(doris::PrimitiveType)26>, doris::ColumnValueRange<(doris::PrimitiveType)20>, doris::ColumnValueRange<(doris::PrimitiveType)2>, doris::ColumnValueRange<(doris::PrimitiveType)19>, doris::ColumnValueRange<(doris::PrimitiveType)28>, doris::ColumnValueRange<(doris::PrimitiveType)29>, doris::ColumnValueRange<(doris::PrimitiveType)30>, doris::ColumnValueRange<(doris::PrimitiveType)35> > > > > const*, std::vector, std::allocator > > const&, doris::TupleDescriptor const*, doris::RowDescriptor const*, std::unordered_map, std::allocator >, int, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, int> > > const*, std::vector, std::allocator > > const*, std::unordered_map, std::allocator > >, std::hash, std::equal_to, std::allocator, std::allocator > > > > > const*, std::shared_ptr, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_reader.cpp:350
12# doris::vectorized::IcebergParquetReader::init_reader(std::vector, std::allocator >, std::allocator, std::allocator > > > const&, std::unordered_map, std::allocator >, std::variant, doris::ColumnValueRange<(doris::PrimitiveType)4>, doris::ColumnValueRange<(doris::PrimitiveType)5>, doris::ColumnValueRange<(doris::PrimitiveType)6>, doris::ColumnValueRange<(doris::PrimitiveType)7>, doris::ColumnValueRange<(doris::PrimitiveType)8>, doris::ColumnValueRange<(doris::PrimitiveType)9>, doris::ColumnValueRange<(doris::PrimitiveType)36>, doris::ColumnValueRange<(doris::PrimitiveType)37>, doris::ColumnValueRange<(doris::PrimitiveType)15>, doris::ColumnValueRange<(doris::PrimitiveType)10>, doris::ColumnValueRange<(doris::PrimitiveType)23>, doris::ColumnValueRange<(doris::PrimitiveType)11>, doris::ColumnValueRange<(doris::PrimitiveType)25>, doris::ColumnValueRange<(doris::PrimitiveType)12>, doris::ColumnValueRange<(doris::PrimitiveType)26>, doris::ColumnValueRange<(doris::PrimitiveType)20>, doris::ColumnValueRange<(doris::PrimitiveType)2>, doris::ColumnValueRange<(doris::PrimitiveType)19>, doris::ColumnValueRange<(doris::PrimitiveType)28>, doris::ColumnValueRange<(doris::PrimitiveType)29>, doris::ColumnValueRange<(doris::PrimitiveType)30>, doris::ColumnValueRange<(doris::PrimitiveType)35> >, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::variant, doris::ColumnValueRange<(doris::PrimitiveType)4>, doris::ColumnValueRange<(doris::PrimitiveType)5>, doris::ColumnValueRange<(doris::PrimitiveType)6>, doris::ColumnValueRange<(doris::PrimitiveType)7>, doris::ColumnValueRange<(doris::PrimitiveType)8>, doris::ColumnValueRange<(doris::PrimitiveType)9>, doris::ColumnValueRange<(doris::PrimitiveType)36>, doris::ColumnValueRange<(doris::PrimitiveType)37>, doris::ColumnValueRange<(doris::PrimitiveType)15>, doris::ColumnValueRange<(doris::PrimitiveType)10>, doris::ColumnValueRange<(doris::PrimitiveType)23>, doris::ColumnValueRange<(doris::PrimitiveType)11>, doris::ColumnValueRange<(doris::PrimitiveType)25>, doris::ColumnValueRange<(doris::PrimitiveType)12>, doris::ColumnValueRange<(doris::PrimitiveType)26>, doris::ColumnValueRange<(doris::PrimitiveType)20>, doris::ColumnValueRange<(doris::PrimitiveType)2>, doris::ColumnValueRange<(doris::PrimitiveType)19>, doris::ColumnValueRange<(doris::PrimitiveType)28>, doris::ColumnValueRange<(doris::PrimitiveType)29>, doris::ColumnValueRange<(doris::PrimitiveType)30>, doris::ColumnValueRange<(doris::PrimitiveType)35> > > > > const*, std::vector, std::allocator > > const&, doris::TupleDescriptor const*, doris::RowDescriptor const*, std::unordered_map, std::allocator >, int, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, int> > > const*, std::vector, std::allocator > > const*, std::unordered_map, std::allocator > >, std::hash, std::equal_to, std::allocator, std::allocator > > > > > const*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/table/iceberg_reader.cpp:463
13# doris::vectorized::FileScanner::_init_parquet_reader(std::unique_ptr >&&, doris::FileMetaCache*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/file_scanner.cpp:1203
14# doris::vectorized::FileScanner::read_lines_from_range(doris::TFileRangeDesc const&, std::__cxx11::list > const&, doris::vectorized::Block*, doris::ExternalFileMappingInfo const&, long*, long*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/file_scanner.cpp:1508
15# std::_Function_handler, std::vector >&, std::shared_ptr, doris::TUniqueId const&, doris::vectorized::Block&, doris::PRuntimeProfileTree*, long*, long*, unsigned long*)::$_0::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /usr/local/ldb-toolchain-v0.26/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:292
16# doris::vectorized::TaskExecutorSimplifiedScanScheduler::submit_scan_task(doris::vectorized::SimplifiedScanTask, std::__cxx11::basic_string, std::allocator > const&)::{lambda()#2}::operator()() const at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner_scheduler.h:339
17# doris::vectorized::ScannerSplitRunner::process_for(std::chrono::duration >) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:408
18# doris::vectorized::PrioritizedSplitRunner::process() at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/executor/time_sharing/prioritized_split_runner.cpp:104
19# doris::vectorized::TimeSharingTaskExecutor::_dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/executor/time_sharing/time_sharing_task_executor.cpp:572
20# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_release/doris/be/src/util/thread.cpp:461
21# start_thread in /lib/x86_64-linux-gnu/libpthread.so.0
22# __clone in /lib/x86_64-linux-gnu/libc.so.6
INFO: java_cmd /usr/lib/jvm/java-17-openjdk-amd64/bin/java
INFO: jdk_version 17
StdoutLogger 2026-03-06 10:51:34,667 Start time: Fri Mar 6 10:51:34 CST 2026
INFO: java_cmd /usr/lib/jvm/java-17-openjdk-amd64/bin/java
INFO: jdk_version 17
OpenJDK 64-Bit Server VM warning: Option CriticalJNINatives was deprecated in version 16.0 and will likely be removed in a future release.
SLF4J(W): Class path contains multiple SLF4J providers.
SLF4J(W): Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
SLF4J(W): Found provider [org.slf4j.reload4j.Reload4jServiceProvider@3ecf72fd]
SLF4J(W): See https://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J(I): Actual provider is of type [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
start BE in local mode
INFO: java_cmd /usr/lib/jvm/java-17-openjdk-amd64/bin/java
INFO: jdk_version 17
StdoutLogger 2026-03-09 10:33:07,454 Start time: Mon Mar 9 10:33:07 CST 2026
INFO: java_cmd /usr/lib/jvm/java-17-openjdk-amd64/bin/java
INFO: jdk_version 17
OpenJDK 64-Bit Server VM warning: Option CriticalJNINatives was deprecated in version 16.0 and will likely be removed in a future release.
SLF4J(W): Class path contains multiple SLF4J providers.
SLF4J(W): Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
SLF4J(W): Found provider [org.slf4j.reload4j.Reload4jServiceProvider@3ecf72fd]
SLF4J(W): See https://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J(I): Actual provider is of type [org.apache.logging.slf4j.SLF4JServiceProvider@64c64813]
start BE in local mode
*** Query id: 3c4cc3b03f914204-981a012558fa732e ***
*** is nereids: 1 ***
*** tablet id: 0 ***
*** Aborted at 1773216387 (unix time) try "date -d @1773216387" if you are using GNU date ***
*** Current BE git commitID: 30d2df0459 ***
*** SIGSEGV address not mapped to object (@0x0) received by PID 27942 (TID 32695 OR 0x7f81c60da700) from PID 0; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_release/doris/be/src/common/signal_handler.h:420
1# PosixSignals::chained_handler(int, siginfo_t*, void*) [clone .part.11] in /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so
2# JVM_handle_linux_signal in /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so
3# 0x00007F8B7CE22980 in /lib/x86_64-linux-gnu/libpthread.so.0
4# doris::Status doris::vectorized::ByteArrayDictDecoder::_decode_values(doris::COW::mutable_ptr&, std::shared_ptr&, doris::vectorized::ColumnSelectVector&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/byte_array_dict_decoder.cpp:132
5# doris::vectorized::ByteArrayDictDecoder::decode_values(doris::COW::mutable_ptr&, std::shared_ptr&, doris::vectorized::ColumnSelectVector&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/byte_array_dict_decoder.cpp:100
6# doris::vectorized::ColumnChunkReader::decode_values(doris::COW::mutable_ptr&, std::shared_ptr&, doris::vectorized::ColumnSelectVector&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_column_chunk_reader.cpp:318
7# doris::vectorized::ScalarColumnReader::_read_values(unsigned long, doris::COW::immutable_ptr&, std::shared_ptr&, doris::vectorized::FilterMap&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:312
8# doris::vectorized::ScalarColumnReader::read_column_data(doris::COW::immutable_ptr&, std::shared_ptr&, std::shared_ptr const&, doris::vectorized::FilterMap&, unsigned long, unsigned long*, bool*, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:668
9# doris::vectorized::RowGroupReader::_read_column_data(doris::vectorized::Block*, std::vector, std::allocator >, std::allocator, std::allocator > > > const&, unsigned long, unsigned long*, bool*, doris::vectorized::FilterMap&) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:435
10# doris::vectorized::RowGroupReader::next_batch(doris::vectorized::Block*, unsigned long, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:324
11# doris::vectorized::ParquetReader::get_next_block(doris::vectorized::Block*, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/parquet/vparquet_reader.cpp:798
12# doris::vectorized::IcebergTableReader::get_next_block_inner(doris::vectorized::Block*, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/table/iceberg_reader.cpp:100
13# doris::vectorized::TableFormatReader::get_next_block(doris::vectorized::Block*, unsigned long*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/format/table/table_format_reader.h:82
14# doris::vectorized::FileScanner::_get_block_wrapped(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/file_scanner.cpp:472
15# doris::vectorized::FileScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/file_scanner.cpp:411
16# doris::vectorized::Scanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /app/doris/apache-doris-4.0.2-bin-x64/be/lib/doris_be
17# doris::vectorized::Scanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner.cpp:87
18# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr, std::shared_ptr) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:173
19# std::_Function_handler, std::shared_ptr)::$_0::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /usr/local/ldb-toolchain-v0.26/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:292
20# doris::vectorized::ScannerSplitRunner::process_for(std::chrono::duration >) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:408
21# doris::vectorized::PrioritizedSplitRunner::process() at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/executor/time_sharing/prioritized_split_runner.cpp:104
22# doris::vectorized::TimeSharingTaskExecutor::_dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/executor/time_sharing/time_sharing_task_executor.cpp:572
23# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_release/doris/be/src/util/thread.cpp:461
24# start_thread in /lib/x86_64-linux-gnu/libpthread.so.0
25# __clone in /lib/x86_64-linux-gnu/libc.so.6
```
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
Contributor guide
Assessment
This issue has not been assessed yet.