prevent abort while alloc shadow failed
This commit is contained in:
5
deps/oblib/src/lib/resource/achunk_mgr.cpp
vendored
5
deps/oblib/src/lib/resource/achunk_mgr.cpp
vendored
@ -182,8 +182,9 @@ void *AChunkMgr::low_alloc(const uint64_t size, const bool can_use_huge_page, bo
|
|||||||
void *shad_ptr = SANITY_TO_SHADOW(ptr);
|
void *shad_ptr = SANITY_TO_SHADOW(ptr);
|
||||||
ssize_t shad_size = SANITY_TO_SHADOW_SIZE(size);
|
ssize_t shad_size = SANITY_TO_SHADOW_SIZE(size);
|
||||||
if (MAP_FAILED == ::mmap(shad_ptr, shad_size, prot, flags, fd, offset)) {
|
if (MAP_FAILED == ::mmap(shad_ptr, shad_size, prot, flags, fd, offset)) {
|
||||||
LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "sanity alloc shadow failed", K(errno), KP(shad_ptr));
|
LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "sanity alloc shadow failed", K(errno), KP(shad_ptr));
|
||||||
abort();
|
::munmap(ptr, size);
|
||||||
|
ptr = nullptr;
|
||||||
} else {
|
} else {
|
||||||
IGNORE_RETURN ATOMIC_FAA(&shadow_hold_, shad_size);
|
IGNORE_RETURN ATOMIC_FAA(&shadow_hold_, shad_size);
|
||||||
//memset(shad_ptr, 0, shad_size);
|
//memset(shad_ptr, 0, shad_size);
|
||||||
|
|||||||
Reference in New Issue
Block a user