-
Notifications
You must be signed in to change notification settings - Fork 321
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
Don't run GC on isolate disposal #1181
Conversation
|
I agree, but I hasn't been able to pinpoint the exact conditions the segfault happens at. We knew there's a problem somewhere in the disposal logic, because we get sporadic segfaults on Windows in
I spoke with Andreu who implemented this and it turns out this was a temporary solution that is not strictly required: https://discord.com/channels/684898665143206084/713035341736706089/1070469717803937875. |
In order to achieve certain properties that were needed to clean up context slots and some other N-API stuff, in #895 I decided to trigger GC on isolate drop to have a guarantee that finalizers would run unless they are reachable from a |
This change updates the documentation of `Weak::with_finalizer` to denoland#1181. It also adds documentation to `Weak::with_guaranteed_finalizer` reflect the fact that the previous stricter guarantees were dropped in and `Weak::clone_with_guaranteed_finalizer`.
This change updates the documentation of `Weak::with_finalizer` to reflect the fact that the previous stricter guarantees were dropped in denoland#1181. It also adds documentation to `Weak::with_guaranteed_finalizer` and `Weak::clone_with_guaranteed_finalizer`.
This change updates the documentation of `Weak::with_finalizer` to reflect the fact that the previous stricter guarantees were dropped in #1181. It also adds documentation to `Weak::with_guaranteed_finalizer` and `Weak::clone_with_guaranteed_finalizer`.
This commit removes triggering "low memory notification" during isolate
disposal. We were getting segfaults in Deno due to this notification. The root cause
of the segfault is still unknown and reproducing the segfault is not easy - I wasn't
able to reproduce it once on Apple M1, I was able to reproduce it on Windows by
running a test suite in a loop for a few minutes.
Removing this garbage collection trigger removes the guarantee that
"regular"
FinalizerCallback
s will be called before the isolate goes away.It is fine as both spec and V8 do not provide this guarantee and we were
overly strict in this case.
CC @andreubotella