From 5cf352781a70eaf4e61a1aad640ea07cd0983307 Mon Sep 17 00:00:00 2001 From: Andre Pinto Date: Fri, 1 May 2015 12:04:52 -0700 Subject: [PATCH] Disable ASAN for Fiber::init() Summary: Fiber::init() method modifies all the bytes in the fiber's stack in order to produce a high watermark of stack memory usage. This behavior generates ASAN errors, as it modifies stack red zones. For that reason, ASAN is disabled for that particular method. Test Plan: Unit tests Reviewed By: alikhtarov@fb.com Subscribers: folly-diffs@, yfeldblum, chalfant FB internal diff: D2036280 Tasks: 6861962 Signature: t1:2036280:1430439550:e156e0e06fae3615d9d9204e99acaf3072bbfafd --- folly/experimental/fibers/Fiber.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/folly/experimental/fibers/Fiber.cpp b/folly/experimental/fibers/Fiber.cpp index 19d4b198..3b5e01c8 100644 --- a/folly/experimental/fibers/Fiber.cpp +++ b/folly/experimental/fibers/Fiber.cpp @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -77,6 +78,8 @@ Fiber::Fiber(FiberManager& fiberManager) : fcontext_ = makeContext(limit, size, &Fiber::fiberFuncHelper); } +// It is necessary to disable ASAN because this function changes fiber's stack. +FOLLY_DISABLE_ADDRESS_SANITIZER void Fiber::init(bool recordStackUsed) { recordStackUsed_ = recordStackUsed; if (UNLIKELY(recordStackUsed_ && !stackFilledWithMagic_)) { -- 2.34.1