mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-01 16:35:29 +08:00
Merge branch 'branch-0.5.0' into 'branch-0.5.0'
MS-641 Segment fault(signal 11) in PickToLoad See merge request megasearch/milvus!695 Former-commit-id: 0f51ab8a9de66d5d22532e68888750749b487fe4
This commit is contained in:
commit
5bda600072
@ -15,6 +15,7 @@ Please mark all change in change log and use the ticket from JIRA.
|
||||
- MS-620 - Get table row counts display wrong error code
|
||||
- MS-637 - out of memory when load too many tasks
|
||||
- MS-640 - Cache object size calculate incorrect
|
||||
- MS-641 - Segment fault(signal 11) in PickToLoad
|
||||
|
||||
## Improvement
|
||||
- MS-552 - Add and change the easylogging library
|
||||
|
||||
@ -158,8 +158,9 @@ TaskTableItem::Dump() {
|
||||
|
||||
std::vector<uint64_t>
|
||||
TaskTable::PickToLoad(uint64_t limit) {
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
size_t count = 0;
|
||||
for (int j = last_finish_ + 1; j < table_.size(); ++j) {
|
||||
for (uint64_t j = last_finish_ + 1; j < table_.size(); ++j) {
|
||||
if (not table_[j]) {
|
||||
SERVER_LOG_WARNING << "table[" << j << "] is nullptr";
|
||||
}
|
||||
@ -186,6 +187,7 @@ TaskTable::PickToLoad(uint64_t limit) {
|
||||
|
||||
std::vector<uint64_t>
|
||||
TaskTable::PickToExecute(uint64_t limit) {
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
std::vector<uint64_t> indexes;
|
||||
bool cross = false;
|
||||
for (uint64_t i = last_finish_ + 1, count = 0; i < table_.size() && count < limit; ++i) {
|
||||
@ -202,7 +204,7 @@ TaskTable::PickToExecute(uint64_t limit) {
|
||||
|
||||
void
|
||||
TaskTable::Put(TaskPtr task) {
|
||||
std::lock_guard<std::mutex> lock(id_mutex_);
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
auto item = std::make_shared<TaskTableItem>();
|
||||
item->id = id_++;
|
||||
item->task = std::move(task);
|
||||
@ -216,7 +218,7 @@ TaskTable::Put(TaskPtr task) {
|
||||
|
||||
void
|
||||
TaskTable::Put(std::vector<TaskPtr>& tasks) {
|
||||
std::lock_guard<std::mutex> lock(id_mutex_);
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
for (auto& task : tasks) {
|
||||
auto item = std::make_shared<TaskTableItem>();
|
||||
item->id = id_++;
|
||||
@ -232,6 +234,7 @@ TaskTable::Put(std::vector<TaskPtr>& tasks) {
|
||||
|
||||
TaskTableItemPtr
|
||||
TaskTable::Get(uint64_t index) {
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
return table_[index];
|
||||
}
|
||||
|
||||
|
||||
@ -149,9 +149,6 @@ class TaskTable {
|
||||
}
|
||||
|
||||
public:
|
||||
TaskTableItemPtr& operator[](uint64_t index) {
|
||||
return table_[index];
|
||||
}
|
||||
|
||||
std::deque<TaskTableItemPtr>::iterator
|
||||
begin() {
|
||||
@ -244,7 +241,7 @@ class TaskTable {
|
||||
|
||||
private:
|
||||
std::uint64_t id_ = 0;
|
||||
mutable std::mutex id_mutex_;
|
||||
mutable std::mutex mutex_;
|
||||
std::deque<TaskTableItemPtr> table_;
|
||||
std::function<void(void)> subscriber_ = nullptr;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user