Comments (38)
new version is out !! @wk8 @darix @seanmakesgames @ignisf
🎊
from mini_racer.
ok I am ready for a release ... try out prerelease this week if no complaints will be releasing stable next
gem install mini_racer --pre
from mini_racer.
That'd be great indeed :)
from mini_racer.
I want to do a release, but I am uneasy to do so with the open segfault. I want that fixed first.
from mini_racer.
@darix @wk8 if you can test latest it would help, let me know if it looks good to you and I will bump
from mini_racer.
ran full test suite against latest and I'm getting strange hangs (have to kill -9) in random test cases. It's probably my fault, but I should probably check it out it the morning because it's late here
here're the callstacks from my gdb attach. lmk if you see anything weird.
https://gist.github.com/seanmakesgames/e93830060acfb0e07ce232d072d81fc4
from mini_racer.
I lied, I tried one thing, now I'm going to bed. Rolling back to one behind latest commit solved the hangs.
(sync'd to 31ec118)
bedtime for me-
from mini_racer.
ouch, if you have a proper repro let me know I will have a look, not going
to release anything unstable.
On Wed, Jul 27, 2016 at 4:25 PM, seanmakesgames [email protected]
wrote:
I lied, I tried one thing, now I'm going to bed. Rolling back to one
behind latest commit solved the hangs.
(sync'd to 31ec118
31ec118
)—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#27 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAUXdEbT3Qxlazikoi-fFp_761UgsrWks5qZvnwgaJpZM4JJL2A
.
from mini_racer.
filed #30 for tracking
from mini_racer.
@SamSaffron : I'm on vacation for another couple of weeks, but happy to help after that, if it can do any good? thanks!
from mini_racer.
@wk8 I will try to get out a release earlier, have a great time on your holiday, feel free to check back in when you are back :)
from mini_racer.
Ran the full test suite against latest with latest libv8. All checks out. :)
from mini_racer.
So time for a release now?
from mini_racer.
@darix I really want to release, but @seanmakesgames has been saying the latest still segfaults in some conditions and I want to sort that out before doing a release, I need a consistent repro of segfaults
from mini_racer.
@SamSaffron This segfault undoubtedly was in previous releases. It is a relatively 'low repro rate' for most user cases. I just happen to be hitting them frequently because I create hundreds of thousands of contexts a day.
I'm going to set up valgrind and see if we can get more clarity on uninitialized memory instances, hopefully that will get us a more consistent repro.
from mini_racer.
@darix Not sure how you're referencing the library, but if you're using a gemfile, then you could just ref the github@specific version until we get a release out.
gem 'mini_racer', github: 'discourse/mini_racer', ref: 'dbb4cef'
from mini_racer.
while this would definitely work .... I prefer to package my gems as rpms for various reasons. among other things i package discourse and my discourse package is stuck because i cant upgrade mini_racer, because i want to use the system copy of v8.
from mini_racer.
makes 100% sense. :)
from mini_racer.
i want to use the system copy of v8
Glad to hear that's working at least for somebody
from mini_racer.
@seanmakesgames just to confirm, you are not able to make segfaults happen in latest?
from mini_racer.
Not confirmed.
Just had 2 segfaults on production in the last 30 minutes.
I'm not able to make segfaults happen in test cases, but I haven't set up valgrind yet. Pretty sure at least some of them are coming out of uninitialized memory.
from mini_racer.
@wk8 if you feel like helping test this for segfaults it would be awesome, I don't want to release till we are very solid.
from mini_racer.
@ignisf I feel stuff is a bit more stable following my work yesterday ... perhaps you can do a build with v8 5.3 and then we can push a new mini_racer with that.
Once you have it ready I will push a pre-release and then 1 week later push stable.
from mini_racer.
Will look into it.
from mini_racer.
@SamSaffron @seanmakesgames beta libv8 up on rubygems
from mini_racer.
@ignisf awesome, I will set a hard dependency on it in the upcoming release
@seanmakesgames any new on the segfaulting?
from mini_racer.
Just run some tests to check if everything is OK and ping me and I'll make a non-prerelease
from mini_racer.
@SamSaffron oof. I totally updated my fork and my lockfile, but that never got pushed up to production. :(
It's been a busy week though with pax, so makes sense that I missed something. :
However! I'm currently creating a framework for load testing (to find max concurrency numbers), and that will surely be able to quickly tell if the other segfaults are fixed or not. I'll keep you posted.
from mini_racer.
@SamSaffron got a c-level exception. Potentially uninit memory or the utf-8 / utf-16 border.
https://gist.github.com/seanmakesgames/fa4e610029cbced26da7e3a587717c30
haven't set up the load tests yet either. Will keep you posted.
from mini_racer.
Dealing with junk strings in Ruby is annoying, that is actually a legit
error, perhaps you should be running #scrub on strings you are sending in?
On Tue, Sep 6, 2016 at 8:10 AM, seanmakesgames [email protected]
wrote:
@SamSaffron https://github.com/SamSaffron got a c-level exception.
Potentially uninit memory or the utf-8 / utf-16 border.https://gist.github.com/seanmakesgames/fa4e610029cbced26da7e3a587717c30
haven't set up the load tests yet either. Will keep you posted.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#27 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAUXV8YhLO4me2heRn9loyfvKejEm7-ks5qnJNUgaJpZM4JJL2A
.
from mini_racer.
Can do. Not sure why it's failing in c-extension-land, and not raising inside of ruby where I would have caught it and returned it to players. :\
from mini_racer.
made another issue for the most common segfault (I'm sure it shows up in other gitissues, too, but figured I'd pull it out into its own)
#39
Can someone tell me why the junk strings are causing c-land exceptions instead of raising in ruby?
from mini_racer.
well what you actually want is having the JS exception handled and converted into a ruby exception?
from mini_racer.
Oh @darix! The "String String ��� is not valid UTF-8." is a JS exception?
Also welcome back. Hope your vacation was good :)
from mini_racer.
well it would be interesting to see with some debug prints if it is still ruby or already in JS. in general i would see
- make sure your web app sets all encodings to UTF-8 so that you can hopefully treat all strings as UTF-8
- scrub anything that isnt valid UTF-8. having a common safe encoding when mixing languages is a good idea. e.g. i really wonder why it says ASCII-8BIT there.
from mini_racer.
haha @darix. :\ :P I wish.
This exception is coming from inside JS code which is natively utf-16. That code is being run on the server, which is calling into a ruby function.
I can't scrub this out on the way to the server from the client, as it is entirely 'server code,' and valid javascript.
I could scrub the code in the barrier between JS and ruby, but- that would probably have to happen in the translation layer between JS -> Ruby. Or maybe right after.
I'll see if I can put together a test case for this in mini_racer.
I'm also curious why it says ascii-8bit now. I'll look into it. Hard to know where those messages are coming from, b/c this is just stderr / stdout piped to a logfile.
from mini_racer.
I've figured out to a very strong degree of confidence the segfaults and other memory related errors. They are 100% related to garbage collection happening in attached procs during execution.
I think you are good to update versions here. As long as it's shown as a 'known issue' w/ a workaround.
#41
from mini_racer.
thank you \o/
from mini_racer.
Related Issues (20)
- sq_mini_racer Ruby 3.1 incompatibility (`Psych::DisallowedClass`) HOT 2
- After MacOS Ventura upgrade. gem install works, bundle install does not HOT 2
- Context has no Isolate available anymore HOT 3
- bundler install error HOT 5
- Installing mini_racer 0.6 on docker M1 fails with "make: printf: Argument list too long" HOT 4
- Update default branch to `main` HOT 3
- Unexpected token p in JSON at position HOT 2
- Gem::Ext::BuildError: ERROR: Failed to build gem native extension (Ruby 2.7.4) HOT 3
- Discuss: Release version 1.0.0 and manage consumer breaking version expectations HOT 3
- Node release catch-up plan HOT 42
- CI Improvements HOT 1
- `Isolate::low_memory_notification` fails to lock Isolate HOT 5
- Error installing mini_racer: ERROR: Failed to build gem native extension HOT 7
- Undefined Conversion
- Segmentation fault when application stops (Ruby 3.2.2, tcmalloc or jemalloc) HOT 17
- mini_racer not starting: `ZSt28__throw_bad_array_new_lengthv: symbol not found (LoadError)` HOT 9
- Suggestions for context defaults for server side rendering HOT 4
- Security guarantees? HOT 1
- mini_racer 0.12.0 Segmentation fault on x86_64-linux with libv8-node 21.7.2.0 HOT 101
- Using IO or rescuing exceptions when setting a timeout HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mini_racer.