gramineproject / graphene

Graphene / Graphene-SGX - a library OS for Linux multi-process applications, with Intel SGX support
https://grapheneproject.io
GNU Lesser General Public License v3.0
765 stars 262 forks source link

Graphene does not support shared futexes b/w processes #2544

Closed anjalirai-intel closed 3 years ago

anjalirai-intel commented 3 years ago

Description of the problem

Shared futexes does not wake up and fails with error "tst_checkpoint_wait(0, 10000): ETIMEDOUT (110)" followed by "tst_checkpoint_wake(0, 1, 10000): errno=ETIMEDOUT(110): Connection timed out"

Steps to reproduce

Run following LTP tests. For some of the tests manifest file update may be required.

  1. dirtyc0w
  2. futex_wait02
  3. getsockopt02
  4. pause01
  5. pipe02
  6. pipe03
  7. pipe13
  8. setpgid03
  9. sighold02
  10. waitid02
  11. waitpid06
  12. waitpid07
  13. waitpid08
  14. waitpid09
  15. waitpid10
  16. waitpid11
  17. waitpid12
  18. waitpid13

Expected results

./getsockopt02

TINFO: Timeout per run is 0h 05m 00s
TPASS: Test passed

Summary:
passed   1
failed   0
skipped  0
warnings 0

Actual results

graphene-direct ./getsockopt02

/home/intel/jenkins/workspace/local_ci_graphene_native/graphene/LibOS/shim/test/ltp/ltp_src/lib/tst_test.c:1250: TINFO: Timeout per run is 0h 05m 00s
/home/intel/jenkins/workspace/local_ci_graphene_native/graphene/LibOS/shim/test/ltp/ltp_src/testcases/kernel/syscalls/getsockopt/getsockopt02.c:58: TFAIL: Error while getting socket option: ENOPROTOOPT (92)
/home/intel/jenkins/workspace/local_ci_graphene_native/graphene/LibOS/shim/test/ltp/ltp_src/lib/tst_checkpoint.c:149: TBROK: /home/intel/jenkins/workspace/local_ci_graphene_native/graphene/LibOS/shim/test/ltp/ltp_src/testcases/kernel/syscalls/getsockopt/getsockopt02.c:36: tst_checkpoint_wait(0, 10000): ETIMEDOUT (110)
/home/intel/jenkins/workspace/local_ci_graphene_native/graphene/LibOS/shim/test/ltp/ltp_src/lib/tst_checkpoint.c:162: TBROK: /home/intel/jenkins/workspace/local_ci_graphene_native/graphene/LibOS/shim/test/ltp/ltp_src/testcases/kernel/syscalls/getsockopt/getsockopt02.c:70: tst_checkpoint_wake(0, 1, 10000): ETIMEDOUT (110)

Summary:
passed   0
failed   0
skipped  0
warnings 0

Label

feature request, not bug

mkow commented 3 years ago

It's just a missing feature, if you want us to implement it then please provide a real world example which uses it.