-
Notifications
You must be signed in to change notification settings - Fork 29
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
Double free crash with uncaught exceptions on CRAN's fedora-clang platform #161
Comments
FYI this problem disappears when we also recompile compile Rcpp with g++. I think the issue is that V8 throws an error using libstdc++, which gets caught by Rcpp, which uses the other libcxx. Update: compiling V8 with |
@glin which package was the package that crashed for you? That allows me to test for a solution. |
You should now be able to install V8 with clang-libcxx by setting a variable export DOWNLOAD_STATIC_LIBV8=1
/opt/R-devel/bin/R -e 'options(repos = "https://cloud.r-project.org"); install.packages("V8")' So you shouldn't need to use gcc to install V8. |
It was my package, reactable, but I had to fix it asap so it's no longer failing CRAN checks (glin/reactable#308). If you still want to test it out though, you could grab the v0.4.2 tag from GitHub: https://github.com/glin/reactable/tree/v0.4.2 And awesome, I can confirm that installing the static V8 fixes the crash on Fedora with both my simple repro and v0.4.2 package tests. The only other question is whether CRAN would be able to install that on their fedora-clang machine? |
I sent a message to BDR but he has not responded. I guess we'll need to be patient. |
Splitting this out from #128:
I just had to fix a really tough double free crash on CRAN's fedora-clang platform with my V8-using package too. Maybe it's the same issue, or related, or at least helpful in some way.
For whatever reason, the double free error was being caused by an uncaught exception in V8 there. To reproduce, you can use R-hub's fedora-clang-devel image (Fedora 33 and a bit behind CRAN, but still works). Install V8 using g++, not clang, as CRAN does, and then throw any error in V8 like
throw new Error()
.My package was throwing an error to detect the broken V8 package on Fedora <= 36 (#65) to skip some tests, and hitting this crash. My sketchy workaround was to try and test for this in a separate R process like:
@jeroen:
The text was updated successfully, but these errors were encountered: