Fatal error during scavenge collection on Android armeabi-v7a

71 views
Skip to first unread message

Kasper Isager Dalsgarð

unread,
Feb 22, 2024, 6:07:22 AMFeb 22
to v8-users
I'm consistently observing a crash on Android armeabi-v7a during scavenge collection triggered by `String::NewFromUtf8(Isolate *, const char *)`, though I don't suspect that the exact call that triggered the scavenge collection relates to the issue. For reference, this is the failing debug check I'm hitting:

```
#
# Fatal error in ../../../v8/src/heap/scavenger.cc, line 393
# Debug check failed: copied_list.IsEmpty().
#
```

I'm having a really hard time debugging why this happens and the fact that it doesn't happen on arm64-v8a has me even more puzzled. I've read through https://groups.google.com/g/v8-users/c/sdU232XmyOw where the same debug check failed, but the was caused by a race condition whereas the code I'm running uses only a single thread.

Which APIs could cause that check to fail? I've tried removing all my uses of weak persistent handles, for example, but that doesn't make a difference. Could it my `Platform` implementation that breaks some invariants that I'm not aware of?

All of the code that interacts with V8 is available here by the way: https://github.com/holepunchto/libjs. I of course don't expect anyone to read through all of that, I'll provide excerpts and summaries of portions that might be relevant to the issue.

Any help would be much appreciated, thanks!

Kasper Isager Dalsgarð

unread,
Mar 7, 2024, 3:48:23 AMMar 7
to v8-users
A colleague of mine briefly hit the same assertion on Android arm64-v8a, but has since been unable to reproduce it. I still haven't been able to narrow down what triggers it.
Reply all
Reply to author
Forward
0 new messages