3 ms·
My first guess would be that this early return is always happening after entering the bugged state. The one cleanup task could get stuck or not cleanup after it
by charcircuit 2y ago
My first guess would be that this early return is always happening after entering the bugged state. The one cleanup task could get stuck or not cleanup after itself properly.
// Only one cleanup task is posted at a time.
if (!HasDirtyJSFinalizationRegistries() || is_finalization_registry_cleanup_task_posted_) {
return;
}
https://source.chromium.org/chromium/chromium/src/+/main:v8/src/heap/heap.cc;l=6884;drc=467a8e68f685f9cfa47ee3fbfca20c22f7f6e893 https://source.chromium.org/chromium/chromium/src/+/main:v8/...
- bouk 2y agoAh this makes a lot of sense, perhaps the posted flag doesn't get reset e.g. if this branch gets followed: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/heap/finalization-registry-cleanup-task.cc;l=52?q=is_finalization_registry_cleanup_task_posted&ss=chromium%2Fchromium%2Fsrc https://source.chromium.org/chromium/chromium/src/+/main:v8/...
- syg 2y agoYeah this is the bug. My bad, will fix.