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] task_group_inl.h:91] _rq is full, capacity=4096 #45419

Closed
2 of 3 tasks
luo985 opened this issue Dec 14, 2024 · 1 comment
Closed
2 of 3 tasks

[Bug] task_group_inl.h:91] _rq is full, capacity=4096 #45419

luo985 opened this issue Dec 14, 2024 · 1 comment

Comments

@luo985
Copy link

luo985 commented Dec 14, 2024

Search before asking

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

Version

2.1.6

What's Wrong?

通过http方式(StreamLoad)实时导入在线日志数据到doris,不定时出现导入很慢(持续几十秒)。这段时间对应的be节点/metrics接口也没反应。
be的WARNING日志中有持续出现 task_group_inl.h:91] _rq is full, capacity=4096 错误,不确定有没有关联关系

What You Expected?

解决不定时导入慢的问题

How to Reproduce?

No response

Anything Else?

企业微信截图_20241214170647
企业微信截图_20241214171812
企业微信截图_20241214124446
企业微信截图_20241214124510

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

@luo985 luo985 closed this as not planned Won't fix, can't repro, duplicate, stale Dec 16, 2024
@arstercz
Copy link

arstercz commented Jan 13, 2025

I had the same issue , version-2.1.5. this error means too many bthreads, from:

https://github.com/apache/brpc/blob/4c33f886756689d6ae90905c5f0cc6fef97e90cf/src/bthread/task_group_inl.h#L91

inline void TaskGroup::push_rq(bthread_t tid) {
    while (!_rq.push(tid)) {
        // Created too many bthreads: a promising approach is to insert the
        // task into another TaskGroup, but we don't use it because:
        // * There're already many bthreads to run, inserting the bthread
        //   into other TaskGroup does not help.
        // * Insertions into other TaskGroups perform worse when all workers
        //   are busy at creating bthreads (proved by test_input_messenger in
        //   brpc)
        flush_nosignal_tasks();
        LOG_EVERY_SECOND(ERROR) << "_rq is full, capacity=" << _rq.capacity();
        // TODO(gejun): May cause deadlock when all workers are spinning here.
        // A better solution is to pop and run existing bthreads, however which
        // make set_remained()-callbacks do context switches and need extensive
        // reviews on related code.
        ::usleep(1000);
    }
}

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