-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
[Bug](join) avoid overflow on bucket_size+1 #37493
Conversation
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
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
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
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
## Proposed changes avoid overflow on bucket_size+1 ```cpp *** Query id: 7371b4516f5b475f-8c060d33a27ffde0 *** *** is nereids: 1 *** *** tablet id: 0 *** *** Aborted at 1720441228 (unix time) try "date -d @1720441228" if you are using GNU date *** *** Current BE git commitID: 2c9d3af *** *** SIGSEGV address not mapped to object (@0x7fec499d5be8) received by PID 466196 (TID 470466 OR 0x7fe5411fc700) from PID 1235049448; stack trace: *** 0# 0x0000561B81AFD533 in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 1# 0x00007FEC26D7FB50 in /lib64/libc.so.6 2# doris::Status doris::pipeline::ProcessHashTableBuild<doris::vectorized::MethodOneNumber<unsigned char, doris::JoinHashTable<unsigned char, HashCRC32<unsigned char> > > >::run<0, false, false, false>(doris::vectorized::MethodOneNumber<unsigned char, doris::JoinHashTable<unsigned char, HashCRC32<unsigned char> > >&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false, false>, 16ul, 15ul> const*, bool*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 3# 0x0000561B8AAE8B90 in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 4# doris::pipeline::HashJoinBuildSinkLocalState::process_build_block(doris::RuntimeState*, doris::vectorized::Block&) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 5# doris::pipeline::HashJoinBuildSinkOperatorX::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 6# doris::pipeline::PipelineTask::execute(bool*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 7# doris::pipeline::TaskScheduler::_do_work(unsigned long) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 8# doris::ThreadPool::dispatch_thread() in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 9# doris::Thread::supervise_thread(void*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 10# start_thread in /lib64/libpthread.so.0 11# __clone in /lib64/libc.so.6 ```
## Proposed changes pick from #37493
## Proposed changes avoid overflow on bucket_size+1 ```cpp *** Query id: 7371b4516f5b475f-8c060d33a27ffde0 *** *** is nereids: 1 *** *** tablet id: 0 *** *** Aborted at 1720441228 (unix time) try "date -d @1720441228" if you are using GNU date *** *** Current BE git commitID: 2c9d3af *** *** SIGSEGV address not mapped to object (@0x7fec499d5be8) received by PID 466196 (TID 470466 OR 0x7fe5411fc700) from PID 1235049448; stack trace: *** 0# 0x0000561B81AFD533 in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 1# 0x00007FEC26D7FB50 in /lib64/libc.so.6 2# doris::Status doris::pipeline::ProcessHashTableBuild<doris::vectorized::MethodOneNumber<unsigned char, doris::JoinHashTable<unsigned char, HashCRC32<unsigned char> > > >::run<0, false, false, false>(doris::vectorized::MethodOneNumber<unsigned char, doris::JoinHashTable<unsigned char, HashCRC32<unsigned char> > >&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false, false>, 16ul, 15ul> const*, bool*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 3# 0x0000561B8AAE8B90 in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 4# doris::pipeline::HashJoinBuildSinkLocalState::process_build_block(doris::RuntimeState*, doris::vectorized::Block&) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 5# doris::pipeline::HashJoinBuildSinkOperatorX::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 6# doris::pipeline::PipelineTask::execute(bool*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 7# doris::pipeline::TaskScheduler::_do_work(unsigned long) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 8# doris::ThreadPool::dispatch_thread() in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 9# doris::Thread::supervise_thread(void*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 10# start_thread in /lib64/libpthread.so.0 11# __clone in /lib64/libc.so.6 ```
## Proposed changes avoid overflow on bucket_size+1 ```cpp *** Query id: 7371b4516f5b475f-8c060d33a27ffde0 *** *** is nereids: 1 *** *** tablet id: 0 *** *** Aborted at 1720441228 (unix time) try "date -d @1720441228" if you are using GNU date *** *** Current BE git commitID: 2c9d3af *** *** SIGSEGV address not mapped to object (@0x7fec499d5be8) received by PID 466196 (TID 470466 OR 0x7fe5411fc700) from PID 1235049448; stack trace: *** 0# 0x0000561B81AFD533 in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 1# 0x00007FEC26D7FB50 in /lib64/libc.so.6 2# doris::Status doris::pipeline::ProcessHashTableBuild<doris::vectorized::MethodOneNumber<unsigned char, doris::JoinHashTable<unsigned char, HashCRC32<unsigned char> > > >::run<0, false, false, false>(doris::vectorized::MethodOneNumber<unsigned char, doris::JoinHashTable<unsigned char, HashCRC32<unsigned char> > >&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false, false>, 16ul, 15ul> const*, bool*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 3# 0x0000561B8AAE8B90 in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 4# doris::pipeline::HashJoinBuildSinkLocalState::process_build_block(doris::RuntimeState*, doris::vectorized::Block&) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 5# doris::pipeline::HashJoinBuildSinkOperatorX::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 6# doris::pipeline::PipelineTask::execute(bool*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 7# doris::pipeline::TaskScheduler::_do_work(unsigned long) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 8# doris::ThreadPool::dispatch_thread() in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 9# doris::Thread::supervise_thread(void*) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be 10# start_thread in /lib64/libpthread.so.0 11# __clone in /lib64/libc.so.6 ```
Proposed changes
avoid overflow on bucket_size+1