From eb15746e416e7127b65a7e6f030c4e9882a20495 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Wed, 2 Jun 2021 16:07:04 -0700 Subject: [PATCH 1/2] Dereference to get result before marking "no access" --- flow/Arena.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flow/Arena.cpp b/flow/Arena.cpp index 096ded32fd..77ea8f1055 100644 --- a/flow/Arena.cpp +++ b/flow/Arena.cpp @@ -241,10 +241,11 @@ void* ArenaBlock::make4kAlignedBuffer(uint32_t size) { r->aligned4kBuffer = allocateFast4kAligned(size); // printf("Arena::aligned4kBuffer alloc size=%u ptr=%p\n", size, r->aligned4kBuffer); r->nextBlockOffset = nextBlockOffset; + auto result = r->aligned4kBuffer; makeNoAccess(r, sizeof(ArenaBlockRef)); nextBlockOffset = bigUsed; bigUsed += sizeof(ArenaBlockRef); - return r->aligned4kBuffer; + return result; } void ArenaBlock::dependOn(Reference& self, ArenaBlock* other) { From a655ae3e481f109696de64f9dedd87a62ef0553c Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Wed, 2 Jun 2021 16:25:25 -0700 Subject: [PATCH 2/2] Try not marking buffer undefined --- fdbserver/IPager.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/fdbserver/IPager.h b/fdbserver/IPager.h index bc2a0f68f1..3514dd3a06 100644 --- a/fdbserver/IPager.h +++ b/fdbserver/IPager.h @@ -56,9 +56,6 @@ public: if (userData != nullptr && userDataDestructor != nullptr) { userDataDestructor(userData); } - if (buffer != nullptr) { - VALGRIND_MAKE_MEM_UNDEFINED(buffer, bufferSize); - } } uint8_t const* begin() const { return (uint8_t*)buffer; }