-
Notifications
You must be signed in to change notification settings - Fork 34
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
samples/gramine-hello fails occasionally #343
Comments
Hi @JaewonHur, thank you for reporting this. What Gramine version is this running with, and did you use Thank you! |
In addition, debug / trace logs from Gramine ( |
I used For MarbleRun manifest and Gramine manifest, I used the ones in Below is the gramine log. |
Thank you. We'll investigate if there is a problem with with gramine v1.3. |
for gramine v1.0 and v1.2, no bug triggered in 30 trials. |
Hey there, I am currently unable to replicate this on Gramine v1.3.1 (I ran ~100 tests without seeing any errors). Could you share some details about your configuration? Could this be memory/resource issue on your end? EDG_MARBLE_TYPE=hello make run &> gramine-log.txt |
Sorry for the confusion. I generated the gramine-log.txt above after modifying helloworld.manifest.template. I tried to reproduce the bug several times, but the bug is so non-deterministic, so I could not get any clue of the root cause. The stdout message is the same as the first comment above. |
Took another look at the double running PreMain issue. Updating The following gramine manifest should fix any deprecation warnings you see when running with Gramine v1.3 loader.entrypoint = "file:{{ gramine.libos }}"
loader.env.LD_LIBRARY_PATH = "/lib"
# entrypoint must be premain-libos
libos.entrypoint = "premain-libos"
# argv0 must be the path to the actual application
loader.argv = ["hello"]
# Forward EDG environment variables, used by MarbleRun
loader.env.EDG_MARBLE_TYPE = { passthrough = true }
loader.env.EDG_MARBLE_COORDINATOR_ADDR = { passthrough = true }
loader.env.EDG_MARBLE_UUID_FILE = { passthrough = true }
loader.env.EDG_MARBLE_DNS_NAMES = { passthrough = true }
# FS mount points
fs.mounts = [
{ path = "/lib", uri = "file:{{ gramine.runtimedir() }}" },
{ path = "/etc", uri = "file:/etc" },
]
# trusted files
sgx.trusted_files = [
"file:{{ gramine.runtimedir() }}/libnss_dns.so.2",
"file:{{ gramine.runtimedir() }}/libnss_files.so.2",
"file:{{ gramine.runtimedir() }}/libresolv.so.2",
"file:{{ gramine.runtimedir() }}/ld-linux-x86-64.so.2",
"file:{{ gramine.runtimedir() }}/libc.so.6",
"file:{{ gramine.runtimedir() }}/libpthread.so.0",
"file:{{ gramine.libos }}",
"file:premain-libos",
"file:hello"
]
# allowed files
sgx.allowed_files = [
"file:/etc/hosts",
"file:/etc/host.conf",
"file:/etc/gai.conf",
"file:/etc/resolv.conf",
"file:/etc/localtime",
"file:/etc/nsswitch.conf",
"file:uuid"
]
# enable DCAP
sgx.remote_attestation = "dcap"
# enclave must have enough memory and threads
sgx.enclave_size = "1024M"
sgx.thread_num = 16
# create a debug enclave by default
sgx.debug = true |
Issue description
I'm trying to run samples/gramine-hello with
edgelessrt v0.3.6
andgo 1.19.4
, andmarblerun 6e0a0
.I correctly followed the README, but the test occasionally fails while running grpc.
Below is the stack trace when bug occurs.
Environment
6e0a0
v0.3.6
1.19.4
Additional info / screenshots
The text was updated successfully, but these errors were encountered: