Commit b27ed0f6 authored by Jim Meyering's avatar Jim Meyering Committed by Nicholas Ormrod

folly: futexWaitUntilImpl: avoid abort triggered via tao/queues tests

Summary:
* folly/test/DeterministicSchedule.cpp (folly): Tao/queues tests exposed
an unhandled case in this code: when (futex->data == expected) happens,
we would call futexErrnoToFutexResult with a futexErrno value of 0,
which would cause an abort (unhandled valued in switch).
Here's a stack trace from the abort: https://phabricator.fb.com/P12558008
showing the invalid futexErrno value in frame #4.

Test Plan:
fbconfig -r --platform-all=gcc-4.8.1-glibc-2.17 --sanitize=address tao/queues:TimeoutWorkQueueTests
_bin/tao/queues/WorkQueueTests -fbunit_test_regexp '^mt\_stress\_deterministic$'

Reviewed By: mssarang@fb.com

FB internal diff: D1404572

Tasks: 4494871
parent 8ee3ba54
......@@ -294,6 +294,8 @@ FutexResult futexWaitUntilImpl(Futex<DeterministicAtomic>* futex,
break;
}
}
} else {
futexErrno = EWOULDBLOCK;
}
futexLock.unlock();
DeterministicSchedule::afterSharedAccess();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment