Skip to content
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

[Fix](core) Fix segment cache core when output rowset is nullptr #24778

Merged
merged 3 commits into from Sep 22, 2023

Conversation

Yukang-Lian
Copy link
Collaborator

Proposed changes

Issue Number: close #xxx

1# 0x00007EFF7DC770A7 in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
2# JVM_handle_linux_signal in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
3# 0x00007EFF7DC7002C in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
4# 0x00007EFF8681A090 in /lib/x86_64-linux-gnu/libc.so.6
5# std::__shared_ptr::get() const at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1291
6# std::__shared_ptr_access::_M_get() const at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:990
7# std::__shared_ptr_access::operator->() const at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:984
8# doris::Rowset::rowset_id() const at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/rowset/rowset.h:153
9# doris::SegmentLoader::load_segments(std::shared_ptr const&, doris::SegmentCacheHandle*, bool) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/segment_loader.cpp:72
10# doris::Compaction::_load_segment_to_cache() at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/compaction.cpp:837
11# doris::Compaction::do_compaction(long) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/compaction.cpp:137
12# doris::CumulativeCompaction::execute_compact_impl() at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/cumulative_compaction.cpp:87
13# doris::Compaction::execute_compact() at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/compaction.cpp:105
14# doris::Tablet::execute_compaction(doris::CompactionType) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/tablet.cpp:1856
15# doris::StorageEngine::_submit_compaction_task(std::shared_ptr, doris::CompactionType, bool)::$_0::operator()() const at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/olap/olap_server.cpp:962
16# void std::__invoke_impl, doris::CompactionType, bool)::$_0&>(std::__invoke_other, doris::StorageEngine::_submit_compaction_task(std::shared_ptr, doris::CompactionType, bool)::$_0&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
17# std::enable_if, doris::CompactionType, bool)::$_0&>, void>::type std::__invoke_r, doris::CompactionType, bool)::$_0&>(doris::StorageEngine::_submit_compaction_task(std::shared_ptr, doris::CompactionType, bool)::$_0&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:117
18# std::_Function_handler, doris::CompactionType, bool)::$_0>::_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
19# std::function::operator()() const at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560
20# doris::FunctionRunnable::run() at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/util/threadpool.cpp:48
21# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/util/threadpool.cpp:533
22# void std::__invoke_impl(std::__invoke_memfun_deref, void (doris::ThreadPool::&)(), doris::ThreadPool&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74
23# std::__invoke_result::type std::__invoke(void (doris::ThreadPool::&)(), doris::ThreadPool&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96
24# void std::_Bind::__call(std::tuple<>&&, std::_Index_tuple<0ul>) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420
25# void std::_Bind::operator()<, void>() at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503
26# void std::__invoke_impl&>(std::__invoke_other, std::_Bind&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
27# std::enable_if&>, void>::type std::__invoke_r&>(std::_Bind&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:117
28# std::_Function_handler >::_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
29# std::function::operator()() const at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560
30# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/util/thread.cpp:465
31# start_thread at /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:478
32# __clone at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...

@Yukang-Lian
Copy link
Collaborator Author

run buildall

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.41% (8023/22038)
Line Coverage: 28.69% (64427/224562)
Region Coverage: 27.60% (33462/121234)
Branch Coverage: 24.26% (17118/70554)
Coverage Report: http://coverage.selectdb-in.cc/coverage/bb1eb5cfd213920ecbad10e48618058174ccf34e_bb1eb5cfd213920ecbad10e48618058174ccf34e/report/index.html

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.4 seconds
stream load tsv: 600 seconds loaded 74807831229 Bytes, about 118 MB/s
stream load json: 20 seconds loaded 2358488459 Bytes, about 112 MB/s
stream load orc: 65 seconds loaded 1101869774 Bytes, about 16 MB/s
stream load parquet: 32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select: 28.8 seconds inserted 10000000 Rows, about 347K ops/s
storage size: 17162386864 Bytes

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@Yukang-Lian
Copy link
Collaborator Author

run buildall

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.33% (8021/22081)
Line Coverage: 28.63% (64418/224965)
Region Coverage: 27.53% (33452/121495)
Branch Coverage: 24.21% (17121/70716)
Coverage Report: http://coverage.selectdb-in.cc/coverage/3ab3affb05a2182493119a917f33b71c22630a56_3ab3affb05a2182493119a917f33b71c22630a56/report/index.html

@Yukang-Lian
Copy link
Collaborator Author

run buildall

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Copy link
Contributor

@liaoxin01 liaoxin01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.98 seconds
stream load tsv: 559 seconds loaded 74807831229 Bytes, about 127 MB/s
stream load json: 20 seconds loaded 2358488459 Bytes, about 112 MB/s
stream load orc: 65 seconds loaded 1101869774 Bytes, about 16 MB/s
stream load parquet: 32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select: 28.7 seconds inserted 10000000 Rows, about 348K ops/s
storage size: 17161997403 Bytes

@github-actions
Copy link
Contributor

PR approved by anyone and no changes requested.

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.33% (8023/22081)
Line Coverage: 28.64% (64439/224967)
Region Coverage: 27.55% (33472/121494)
Branch Coverage: 24.22% (17126/70716)
Coverage Report: http://coverage.selectdb-in.cc/coverage/d2b7a18b5687a9a3fec3fec549b1e124e8fa78a3_d2b7a18b5687a9a3fec3fec549b1e124e8fa78a3/report/index.html

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.86 seconds
stream load tsv: 574 seconds loaded 74807831229 Bytes, about 124 MB/s
stream load json: 21 seconds loaded 2358488459 Bytes, about 107 MB/s
stream load orc: 65 seconds loaded 1101869774 Bytes, about 16 MB/s
stream load parquet: 31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select: 28.7 seconds inserted 10000000 Rows, about 348K ops/s
storage size: 17162331958 Bytes

Copy link
Contributor

@zhannngchen zhannngchen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions
Copy link
Contributor

PR approved by at least one committer and no changes requested.

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Sep 22, 2023
@xiaokang xiaokang merged commit f4b1e2b into apache:master Sep 22, 2023
22 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by one committer. dev/2.0.2-merged p0_b reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants