Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Newer Rust versions might cause issues with Enarx until Enarx upgrades Rust version & Wasmtime #2567

Open
2 tasks done
rjzak opened this issue Dec 27, 2023 · 1 comment
Labels
bug Something isn't working triage Issues that need to be triaged. wasm Issues related to WebAssembly

Comments

@rjzak
Copy link
Member

rjzak commented Dec 27, 2023

Is there an existing issue for this?

  • I have searched the existing issues

Code of Conduct

  • I agree to follow this project's Code of Conduct

Current Behaviour

Some .wasm files are failing (not right away).

Error: failed to execute default function

Caused by:
    0: error while executing at wasm backtrace:
           0: 0x4d2e - <unknown>!<wasm function 21>
           1: 0x307a8 - <unknown>!<wasm function 295>
           2: 0x1ad4f - <unknown>!<wasm function 117>
           3: 0x18f1f - <unknown>!<wasm function 112>
           4: 0x191f7 - <unknown>!<wasm function 116>
           5: 0x4565d - <unknown>!<wasm function 449>
           6:  0x8f0 - <unknown>!<wasm function 15>
    1: Unknown OS error
    2: Function not implemented (os error 38)

This binary in particular works fine, but sometimes fails after several seconds or a couple of minutes.

Things to check:

Expected Behaviour

Running until user killed without crashing.

Environment Information

❯ ./enarx platform info
Enarx version 0.7.1
System Info: Linux 6.1.0-16-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.67-1 (2023-12-12) x86_64
✔ Backend: sgx
  ✔ Driver: /dev/sgx_enclave
  ✔ CPU: Intel(R) Core(TM) i5-1035G7 CPU @ 1.20GHz | GenuineIntel
  ✔  SGX Support
  ✔   Version 1
  ✔   Version 2
  ✔   FLC Support
  ✔   Max Size (32-bit): 2 GiB
  ✔   Max Size (64-bit): 128 TiB
  ✔   MiscSelect: EXINFO
  ✔   Features: DEBUG | MODE64BIT | PROVISIONING_KEY | EINIT_KEY | KSS
  ✔   Xfrm: X87 | SSE | AVX | YMM | OPMASK | ZMM_HI256 | HI16_ZMM | MPK
  ✔   EPC Size: 188 MiB
  ✔ Intel CRL cache file: /var/cache/intel-sgx/crls.der, next update 2024-01-24T15:49:48Z
  ✔ TCB & FMSPC cache: Next update: 2024-01-24 16:37:25 +00:00
  ✔ AESM Daemon Socket: /var/run/aesmd/aesm.socket

Steps To Reproduce

No response

@rjzak rjzak added bug Something isn't working triage Issues that need to be triaged. labels Dec 27, 2023
@rjzak rjzak changed the title [Bug]: Newer Rust versions might cause issues with Enarx until Enarx upgrades Wasmtime [Bug]: Newer Rust versions might cause issues with Enarx until Enarx upgrades Rust version & Wasmtime Dec 27, 2023
@rjzak rjzak added the wasm Issues related to WebAssembly label Dec 27, 2023
@rjzak
Copy link
Member Author

rjzak commented Dec 27, 2023

Application is based closely on https://github.com/rjzak/secure-notes-wasi

It works for a while but eventually dies.

[0] syscall 11 = 0
[0] syscall 11 ...
[0] sgx_unmap(Record {
    region: Line {
        start: Address(0x00007faffff3d000),
        end: Address(0x00007faffffb3000),
    },
    access: READ | WRITE | MMAPPED,
}
[0] sgx_unmap(Record {
    region: Line {
        start: Address(0x00007faffffb3000),
        end: Address(0x00007faffffbe000),
    },
    access: READ | WRITE,
}
[0] syscall 11 = 0
[0] syscall 1 ...
Error: [0] syscall 1 = 7
[0] syscall 1 ...
failed to execute default function[0] syscall 1 = 34
[0] syscall 1 ...


Caused by:[0] syscall 1 = 12
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
0[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
error while executing at wasm backtrace:[0] syscall 1 = 40
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
       [0] syscall 1 = 7
[0] syscall 1 ...
  [0] syscall 1 = 2
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
0[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
0x[0] syscall 1 = 2
[0] syscall 1 ...
4b42[0] syscall 1 = 4
[0] syscall 1 ...
 - [0] syscall 1 = 3
[0] syscall 1 ...
<unknown>[0] syscall 1 = 9
[0] syscall 1 ...
![0] syscall 1 = 1
[0] syscall 1 ...
<wasm function [0] syscall 1 = 15
[0] syscall 1 ...
18[0] syscall 1 = 2
[0] syscall 1 ...
>[0] syscall 1 = 1
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
       [0] syscall 1 = 7
[0] syscall 1 ...
  [0] syscall 1 = 2
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
1[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
0x[0] syscall 1 = 2
[0] syscall 1 ...
2d88f[0] syscall 1 = 5
[0] syscall 1 ...
 - [0] syscall 1 = 3
[0] syscall 1 ...
<unknown>[0] syscall 1 = 9
[0] syscall 1 ...
![0] syscall 1 = 1
[0] syscall 1 ...
<wasm function [0] syscall 1 = 15
[0] syscall 1 ...
278[0] syscall 1 = 3
[0] syscall 1 ...
>[0] syscall 1 = 1
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
       [0] syscall 1 = 7
[0] syscall 1 ...
  [0] syscall 1 = 2
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
2[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
0x[0] syscall 1 = 2
[0] syscall 1 ...
3bc48[0] syscall 1 = 5
[0] syscall 1 ...
 - [0] syscall 1 = 3
[0] syscall 1 ...
<unknown>[0] syscall 1 = 9
[0] syscall 1 ...
![0] syscall 1 = 1
[0] syscall 1 ...
<wasm function [0] syscall 1 = 15
[0] syscall 1 ...
380[0] syscall 1 = 3
[0] syscall 1 ...
>[0] syscall 1 = 1
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
       [0] syscall 1 = 7
[0] syscall 1 ...
  [0] syscall 1 = 2
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
3[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
0x[0] syscall 1 = 2
[0] syscall 1 ...
1b252[0] syscall 1 = 5
[0] syscall 1 ...
 - [0] syscall 1 = 3
[0] syscall 1 ...
<unknown>[0] syscall 1 = 9
[0] syscall 1 ...
![0] syscall 1 = 1
[0] syscall 1 ...
<wasm function [0] syscall 1 = 15
[0] syscall 1 ...
116[0] syscall 1 = 3
[0] syscall 1 ...
>[0] syscall 1 = 1
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
       [0] syscall 1 = 7
[0] syscall 1 ...
  [0] syscall 1 = 2
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
4[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
0x[0] syscall 1 = 2
[0] syscall 1 ...
46a0a[0] syscall 1 = 5
[0] syscall 1 ...
 - [0] syscall 1 = 3
[0] syscall 1 ...
<unknown>[0] syscall 1 = 9
[0] syscall 1 ...
![0] syscall 1 = 1
[0] syscall 1 ...
<wasm function [0] syscall 1 = 15
[0] syscall 1 ...
416[0] syscall 1 = 3
[0] syscall 1 ...
>[0] syscall 1 = 1
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
       [0] syscall 1 = 7
[0] syscall 1 ...
  [0] syscall 1 = 2
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
5[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
0x[0] syscall 1 = 2
[0] syscall 1 ...
949[0] syscall 1 = 3
[0] syscall 1 ...
 - [0] syscall 1 = 3
[0] syscall 1 ...
<unknown>[0] syscall 1 = 9
[0] syscall 1 ...
![0] syscall 1 = 1
[0] syscall 1 ...
<wasm function [0] syscall 1 = 15
[0] syscall 1 ...
15[0] syscall 1 = 2
[0] syscall 1 ...
>[0] syscall 1 = 1
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
1[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
Unknown OS error[0] syscall 1 = 16
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
 [0] syscall 1 = 1
[0] syscall 1 ...
2[0] syscall 1 = 1
[0] syscall 1 ...
: [0] syscall 1 = 2
[0] syscall 1 ...
Function not implemented[0] syscall 1 = 24
[0] syscall 1 ...
 (os error [0] syscall 1 = 11
[0] syscall 1 ...
38[0] syscall 1 = 2
[0] syscall 1 ...
)[0] syscall 1 = 1
[0] syscall 1 ...

[0] syscall 1 = 1
[0] syscall 231 ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working triage Issues that need to be triaged. wasm Issues related to WebAssembly
Projects
None yet
Development

No branches or pull requests

1 participant