fix memorydump hang
This commit is contained in:
9
deps/oblib/src/lib/alloc/memory_dump.cpp
vendored
9
deps/oblib/src/lib/alloc/memory_dump.cpp
vendored
@ -352,10 +352,11 @@ int label_stat(AChunk *chunk, ABlock *block, AObject *object,
|
||||
} else {
|
||||
hold = align_up2(chunk->alloc_bytes_ + ACHUNK_HEADER_SIZE, get_page_size());
|
||||
}
|
||||
void *label = &object->label_[0];
|
||||
void *end = memchr(label, '\0', sizeof(object->label_));
|
||||
int len = end ? (char*)end - (char*)label : sizeof(object->label_);
|
||||
ObString str(len, (char*)label);
|
||||
char label[AOBJECT_LABEL_SIZE + 1];
|
||||
STRNCPY(label, object->label_, sizeof(label));
|
||||
label[sizeof(label) - 1] = '\0';
|
||||
int len = strlen(label);
|
||||
ObString str(len, label);
|
||||
LabelItem *litem = nullptr;
|
||||
LabelInfoItem *linfoitem = lmap.get(str);
|
||||
if (NULL != linfoitem) {
|
||||
|
2
deps/oblib/src/lib/alloc/memory_dump.h
vendored
2
deps/oblib/src/lib/alloc/memory_dump.h
vendored
@ -102,7 +102,7 @@ struct LabelInfoItem
|
||||
void *block_;
|
||||
};
|
||||
|
||||
typedef common::hash::ObHashMap<ObString, LabelInfoItem> LabelMap;
|
||||
typedef common::hash::ObHashMap<ObString, LabelInfoItem, hash::NoPthreadDefendMode> LabelMap;
|
||||
|
||||
using lib::AChunk;
|
||||
using lib::ABlock;
|
||||
|
Reference in New Issue
Block a user