-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[Bug](join) avoid overflow on bucket_size+1 #37493
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 |
|
clang-tidy review says "All clean, LGTM! 👍" |
mrhhsg
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
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
HappenLee
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
## 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