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

[Bug] 查询中transfer_thread 线程出现死锁,该查询也无法取消,并且一直会打印取消的日志 #8222

Open
2 of 3 tasks
larryju opened this issue Feb 24, 2022 · 1 comment

Comments

@larryju
Copy link

larryju commented Feb 24, 2022

Search before asking

  • I had searched in the issues and found no similar issues.

Version

0.15.0

What's Wrong?

执行查询时,扫描数据的线程会一直处于wait状态,无法被唤醒

通过pstack命令查看有如下线程一直处于wait:
Thread 3 (Thread 0x7fd7bb4ab700 (LWP 6315)):
#0 0x00007fd85be7a965 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x000000000389913c in std::condition_variable::wait(std::unique_lockstd::mutex&) ()
#2 0x0000000001a67e39 in doris::OlapScanNode::transfer_thread(doris::RuntimeState*) () at../src/exec/olap_scan_node.cpp:1458
#3 0x0000000003907400 in execute_native_thread_routine ()
#4 0x00007fd85be76dd5 in start_thread () from /lib64/libpthread.so.0
#5 0x00007fd85b89e02d in clone () from /lib64/libc.so.6

手动取消查询后,be节点会重复输出日志:
[plan_fragment_executor.cpp:507] cancel(): fragment_instance_id xxxxxxxx

注:该情况在tablet 数据量 过大的时候更容易出现(建表的时候没有选择范围分区,只作了分桶;修改表结构,按day分区以后则查询正常)

What You Expected?

除了代码层面的bug 和 建表方式以外,可以通过配置参数避免这个问题么?

How to Reproduce?

No response

Anything Else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

@Userwhite
Copy link
Contributor

Did you see there is scanner_thread?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants