Kernel suspend fails

My laptop reproducibly fails to suspend when using our cryptsetup-suspend. I tracked it down to a dead-lock in cryptsetup-suspend.c:

  • fputs("mem", s) (writing mem to /sys/power/state) is executed but seems to return immediately. So for some reason, the kernel is unable to suspend the system
  • fclose(s) is in a dead-lock. For some reason, it doesn't return

If I put a fprintf in between these two operations, the fprintf is successful. So my guess it that for some reason the kernel is unable to access files under /sys. Maybe it's related to the recent changes how we bind-mount the chroot.

I already tested it's related to swap issues by running swapoff -a before the suspend and even by calling mlockall(2) in cryptsetup-suspend.c. Neither of them changed anything, so I'm pretty sure that this issues is completely unrelated to swapping.

Edited by Jonas Meurer