"Internal error. Icu error" when upgrading from v8 7.3 to 7.8

35 views
Skip to first unread message

nightpool

unread,
May 4, 2020, 12:28:19 PM5/4/20
to v8-dev
Hi, i'm trying to update the mini_racer ruby extension to use a more modern version of v8, and i'm running into a problem where Number.toLocaleString is throwing "TypeError: Internal error. Icu error."

The error is occurring in code as simple as "(10).toLocaleString()". Does anyone know what could be going on here? You can see the v8 side of the bindings here: https://github.com/rubyjs/mini_racer/pull/153/files

Ben Noordhuis

unread,
May 5, 2020, 5:39:54 AM5/5/20
to v8-...@googlegroups.com
It sounds like you're hitting
https://bugs.chromium.org/p/v8/issues/detail?id=8641 - tl;dr the ICU
data file is missing a section.

I don't know if 7.8 is supposed to contain the fix. Are you using the
bundled copy of ICU? Do newer V8 releases work?

As an aside: 7.8 has been EOL for 6 months now, you probably want to
switch to a newer version anyway.

nightpool

unread,
May 5, 2020, 11:15:59 PM5/5/20
to v8-...@googlegroups.com
Thanks Ben! I'm using 7.8 since that's what the last contributor who was working on the upgrade upgraded to, in December. I'll try and figure out what releases the bug you linked made it into. How can I tell if I'm using the built-in ICU data or not? I'm running v8 embedded in Ruby, this is the line we initialize v8 on: https://github.com/rubyjs/mini_racer/blob/master/ext/mini_racer_extension/mini_racer_extension.cc#L192.

What's the recommended route for upgrading across such a large version gap? should I go minor version by minor version, or try and make the upgrade all at once?

--
--
v8-dev mailing list
v8-...@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to a topic in the Google Groups "v8-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/v8-dev/y7BKAeAbYVM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to v8-dev+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/CAHQurc9RPkp8T4t-ub_41-LaKyMCZRav9K3yddhOxfx1SgryOg%40mail.gmail.com.

Ben Noordhuis

unread,
May 6, 2020, 7:56:12 AM5/6/20
to v8-...@googlegroups.com
On Wed, May 6, 2020 at 5:15 AM 'nightpool' via v8-dev
<v8-...@googlegroups.com> wrote:
>
> Thanks Ben! I'm using 7.8 since that's what the last contributor who was working on the upgrade upgraded to, in December. I'll try and figure out what releases the bug you linked made it into. How can I tell if I'm using the built-in ICU data or not? I'm running v8 embedded in Ruby, this is the line we initialize v8 on: https://github.com/rubyjs/mini_racer/blob/master/ext/mini_racer_extension/mini_racer_extension.cc#L192.
>
> What's the recommended route for upgrading across such a large version gap? should I go minor version by minor version, or try and make the upgrade all at once?

I'd upgrade in one go. There's been relatively little API churn lately
but if you need help with anything, feel free to ping me on github.
I'm @bnoordhuis.

mini_racer depends on https://github.com/rubyjs/libv8, right? As far
as I can tell, it builds V8 from source using the bundled ICU. Commit
https://github.com/rubyjs/libv8/commit/d85b88cd6099a447c23de580e68ef2531de5c5b8
at least seems to suggest it does. You can probably tell by looking
for ICU libraries in the build directory.
Reply all
Reply to author
Forward
0 new messages