Help requested: futex(..., FUTEX_WAIT_PRIVATE, ...) returns EPERM

From: Harris, Robert
Date: Tue Nov 12 2019 - 12:41:02 EST


I am investigating an issue on 4.9.184 in which futex() returns EPERM
intermittently for

futex(uaddr, FUTEX_WAIT_PRIVATE, val, &timeout, NULL, 0)

The failure affects an application in an AWS lambda; traditional
debugging approaches vary from difficult to impossible. I cannot
reproduce the problem at will, instrument the kernel, install a new
kernel or get an application core dump.

Understanding the circumstances under which EPERM can be returned for
FUTEX_WAIT_PRIVATE would be useful but it is not a documented failure
mode. I have spent some time looking through futex.c but have not
found anything yet. I would be grateful for a hint from someone more
knowledgeable.

Please address/cc me on any reply.

Thanks,

Robert Harris
Confidentiality Notice | This email and any included attachments may be privileged, confidential and/or otherwise protected from disclosure. Access to this email by anyone other than the intended recipient is unauthorized. If you believe you have received this email in error, please contact the sender immediately and delete all copies. If you are not the intended recipient, you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited.