-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](schema-change) Prevent coredump when reading non-overlapping segments from a single rowset during heavy schema change #57191
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
run buildall |
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
TPC-DS: Total hot run time: 190939 ms |
ClickBench: Total hot run time: 28.9 s |
46e25b5 to
60b2aaf
Compare
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
60b2aaf to
943bedf
Compare
…egments from a single rowset during heavy schema change
943bedf to
5b24333
Compare
|
run buildall |
ClickBench: Total hot run time: 27.73 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
airborne12
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…gments from a single rowset during heavy schema change (#57191) ### What problem does this PR solve? Problem Summary: ``` *** Query id: 0-0 *** *** is nereids: 0 *** *** tablet id: 1751140494462 *** *** Aborted at 1751208065 (unix time) try "date -d @1751208065" if you are using GNU date *** *** Current BE git commitID: 34d8342 *** *** SIGSEGV invalid permissions for mapped object (@0x556ef4dfc000) received by PID 4975 (TID 5587 OR 0x7f71da3c4640) from PID 18446744073522888704; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/common/signal_handler.h:421 1# PosixSignals::chained_handler(int, siginfo*, void*) [clone .part.0] 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# 0x00007F731FC1F520 in /lib/x86_64-linux-gnu/libc.so.6 4# doris::vectorized::VMergeIteratorContext::copy_rows(doris::vectorized::Block*, bool) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/vec/olap/vgeneric_iterators.cpp:148 5# doris::Status doris::vectorized::VMergeIterator::_next_batch<doris::vectorized::Block>(doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/vec/olap/vgeneric_iterators.h:242 6# doris::vectorized::VMergeIterator::next_batch(doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/vec/olap/vgeneric_iterators.h:201 7# doris::BetaRowsetReader::next_block(doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/rowset/beta_rowset_reader.cpp:378 8# doris::VSchemaChangeDirectly::_inner_process(std::shared_ptr<doris::RowsetReader>, doris::RowsetWriter*, std::shared_ptr<doris::BaseTablet>, std::shared_ptr<doris::TabletSchema>, std::shared_ptr<doris::TabletSchema>) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.cpp:523 9# doris::SchemaChange::process(std::shared_ptr<doris::RowsetReader>, doris::RowsetWriter*, std::shared_ptr<doris::BaseTablet>, std::shared_ptr<doris::BaseTablet>, std::shared_ptr<doris::TabletSchema>, std::shared_ptr<doris::TabletSchema>) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.h:120 10# doris::SchemaChangeJob::_convert_historical_rowsets(doris::SchemaChangeParams const&, long*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.cpp:1179 11# doris::SchemaChangeJob::_do_process_alter_tablet(doris::TAlterTabletReqV2 const&) in /mnt/hdd01/PERFORMANCE_ENV/be/lib/doris_be 12# doris::SchemaChangeJob::process_alter_tablet(doris::TAlterTabletReqV2 const&) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.cpp:759 13# doris::alter_tablet_callback(doris::StorageEngine&, doris::TAgentTaskRequest const&) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/agent/task_worker_pool.cpp:1990 14# std::_Function_handler<void (), doris::TaskWorkerPool::submit_task(doris::TAgentTaskRequest const&)::$_0::operator()<doris::TAgentTaskRequest const&>(doris::TAgentTaskRequest const&) const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291 15# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/util/threadpool.cpp:609 16# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/util/thread.cpp:499 17# start_thread at ./nptl/pthread_create.c:442 18# 0x00007F731FD03850 at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:83 ``` Schema of input block from base tablet should merge dropped column.
…gments from a single rowset during heavy schema change (#57191) ### What problem does this PR solve? Problem Summary: ``` *** Query id: 0-0 *** *** is nereids: 0 *** *** tablet id: 1751140494462 *** *** Aborted at 1751208065 (unix time) try "date -d @1751208065" if you are using GNU date *** *** Current BE git commitID: 34d8342 *** *** SIGSEGV invalid permissions for mapped object (@0x556ef4dfc000) received by PID 4975 (TID 5587 OR 0x7f71da3c4640) from PID 18446744073522888704; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/common/signal_handler.h:421 1# PosixSignals::chained_handler(int, siginfo*, void*) [clone .part.0] 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# 0x00007F731FC1F520 in /lib/x86_64-linux-gnu/libc.so.6 4# doris::vectorized::VMergeIteratorContext::copy_rows(doris::vectorized::Block*, bool) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/vec/olap/vgeneric_iterators.cpp:148 5# doris::Status doris::vectorized::VMergeIterator::_next_batch<doris::vectorized::Block>(doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/vec/olap/vgeneric_iterators.h:242 6# doris::vectorized::VMergeIterator::next_batch(doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/vec/olap/vgeneric_iterators.h:201 7# doris::BetaRowsetReader::next_block(doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/rowset/beta_rowset_reader.cpp:378 8# doris::VSchemaChangeDirectly::_inner_process(std::shared_ptr<doris::RowsetReader>, doris::RowsetWriter*, std::shared_ptr<doris::BaseTablet>, std::shared_ptr<doris::TabletSchema>, std::shared_ptr<doris::TabletSchema>) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.cpp:523 9# doris::SchemaChange::process(std::shared_ptr<doris::RowsetReader>, doris::RowsetWriter*, std::shared_ptr<doris::BaseTablet>, std::shared_ptr<doris::BaseTablet>, std::shared_ptr<doris::TabletSchema>, std::shared_ptr<doris::TabletSchema>) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.h:120 10# doris::SchemaChangeJob::_convert_historical_rowsets(doris::SchemaChangeParams const&, long*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.cpp:1179 11# doris::SchemaChangeJob::_do_process_alter_tablet(doris::TAlterTabletReqV2 const&) in /mnt/hdd01/PERFORMANCE_ENV/be/lib/doris_be 12# doris::SchemaChangeJob::process_alter_tablet(doris::TAlterTabletReqV2 const&) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/olap/schema_change.cpp:759 13# doris::alter_tablet_callback(doris::StorageEngine&, doris::TAgentTaskRequest const&) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/agent/task_worker_pool.cpp:1990 14# std::_Function_handler<void (), doris::TaskWorkerPool::submit_task(doris::TAgentTaskRequest const&)::$_0::operator()<doris::TAgentTaskRequest const&>(doris::TAgentTaskRequest const&) const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291 15# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/util/threadpool.cpp:609 16# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_branch-3.0/doris/be/src/util/thread.cpp:499 17# start_thread at ./nptl/pthread_create.c:442 18# 0x00007F731FD03850 at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:83 ``` Schema of input block from base tablet should merge dropped column.
What problem does this PR solve?
Problem Summary:
Schema of input block from base tablet should merge dropped column.
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)