IncludeOS
IncludeOS copied to clipboard
Enabling strace causes OpenSSL to fail initialization
Specifically, it fails to run SSL_load_error_strings properly. On Linux/clang-7 it just sits there stuck, and on macOS it faults with a null-pointer access.
macaroni with strace enabled:
[ OpenSSL ] Initializing (OpenSSL 1.0.2p-dev xx XXX xxxx)
setup_rng
SSL_library_init
SSL_load_error_strings
>>>> !!! CPU 0 EXCEPTION !!! <<<<
Page Fault (14) EIP 0 CODE 0x10
Page not present, trying to access 0x0
Page read failed.
Instruction fetch. XD
RAX: 0000000000101dc0 R 8: 000000007fffffff
RBX: 0000000000000000 R 9: 0000000000101f10
RCX: 0000000000000000 R10: 0000000000000000
RDX: 0000000000000000 R11: 0000000000102350
RBP: 0000000000101f10 R12: 0000000000000000
RSP: 0000400000055fd0 R13: 0000000000000000
RSI: 0000000000102350 R14: 0000000000101f10
RDI: 0000000000101dc0 R15: 0000000000102350
RIP: 0000000000000000 FLA: 0000000000000246
CR0: 0000000080010033 CR4: 0000000000000620
CR1: 0000000000000000 CR8: 0000000000000000
CR2: 0000000000000000 GDT: 00000000006a3954 (41)
CR3: 00000000007a5000 IDT: 00000000006b6250 (2559)
**** PANIC ****
CPU: 0, Reason: Page Fault (14)
Heap is at: 0xeea000 / 0x7fdffff (diff=118448127)
Heap usage: 7456 / 123127 Kb
[0] 0x0000000000214750 + 0x118: panic
[1] 0x000000000039d5b0 + 0x0bc: __cpu_exception
[2] 0x000000000039e7b8 + 0x000: __cpu_except_15
I had this problem again when implementing s2n. The OS will start but networking will not work. Considering all the cases that lead to this, it is safe to assume that there is a real problem with strace or something related to it.