Henry Robinson has uploaded a new patch set (#2). Change subject: IMPALA-5666: ASAN poisoning for MemPool and BufferPool ......................................................................
IMPALA-5666: ASAN poisoning for MemPool and BufferPool "If you poison us, do we not die?" * Use ASAN_[UN]POISON_MEMORY_REGION to indicate to ASAN runtime that memory is not 'valid' from Impala's perspective (but still valid from kernel's perspective). * Add this to MemPool and BufferPoolAllocator. For both, memory goes through the following lifecycle: when it is allocated from the OS and returned to the user, it must be unpoisoned. When the user returns it to a cache, it becomes poisoned. When the cache is freed to the OS, it must be unpoisoned again (otherwise future allocations elsewhere in the system might return poisoned memory). * Also add checks to FreePool which uses a MemPool underneath, but has its own freelist cache. Fix a couple of bugs in free-pool-test that these checks uncovered. Testing: * Tests that only run if ASAN is enabled to confirm that poisoning catches simple use-after-return errors. These are 'death' tests which catch expected process exits. * Fix one bug found in StringFunctions::FindInSet which would read one byte past the end of a stringvalue. Change-Id: I8d5a28dfee2b7c631981aac75524bde9acc0b36a --- M be/src/exprs/string-functions-ir.cc M be/src/runtime/bufferpool/buffer-allocator-test.cc M be/src/runtime/bufferpool/buffer-allocator.cc M be/src/runtime/bufferpool/buffer-pool.h M be/src/runtime/bufferpool/free-list.h M be/src/runtime/free-pool-test.cc M be/src/runtime/free-pool.h M be/src/runtime/mem-pool-test.cc M be/src/runtime/mem-pool.cc M be/src/runtime/mem-pool.h 10 files changed, 146 insertions(+), 18 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/91/7591/2 -- To view, visit http://gerrit.cloudera.org:8080/7591 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I8d5a28dfee2b7c631981aac75524bde9acc0b36a Gerrit-PatchSet: 2 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Henry Robinson <[email protected]> Gerrit-Reviewer: Tim Armstrong <[email protected]>
