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

Better synchronization poisoning #53

Open
nick-mobilecoin opened this issue Feb 1, 2023 · 0 comments
Open

Better synchronization poisoning #53

nick-mobilecoin opened this issue Feb 1, 2023 · 0 comments

Comments

@nick-mobilecoin
Copy link
Collaborator

Currently the poisoning logic in rust std::sync relies on unwinding.
MutexGuard::drop() will call the drop() on the Mutexes poison flag.

The current panicking in SGX does not unwind which means the poisoning will never happen.
If we chose to utilize a global panic count for poisoning then all other [Mutex']es, not just the one held in the panicked thread, will report poisoned. This may be ok since the abort()` function used in the panic handler sets the enclave crashed flag, which means any threads still working will finish, but no new ones will start. This results in requiring an enclave reload.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

1 participant