Node.js crash with a fatal error on a call of Date#toLocaleString
.
I know that Node.js doesn't contain full ICU, but I didn't expect it to crash with a fatal error.
> node -e "new Date().toLocaleString()"
#
# Fatal error in , line 0
# Check failed: U_SUCCESS(status).
#
#
#
#FailureMessage Object: 000000F1A52FD440
You need full icu support in order to use Intl-related functionality.
I fixed it using https://github.com/unicode-org/full-icu-npm and doing what it printed when i installed it.
Me too. Reverted to v 11.14.0.
cc @nodejs/i18n @nodejs/platform-windows
Same error here:
v 12.0.0
macos 10.14.4
If it means locale is Russian
Got error:
/* Connecting to MySQL database via db.authenticate() method of sequelize */
#
# Fatal error in , line 0
# Check failed: U_SUCCESS(status).
#
#
#
#FailureMessage Object: 0x7ffeefbfe020Illegal instruction: 4
aaargh.. Confirmed.
I'm going to say it's probably a v8 regression at this poin, probbaly in deps/v8/src//objects/js-date-time-format.cc
LC_ALL=ja node -e "new Date().toLocaleString()"
Problem doesn't appear in 8549ac09b2
Failing to create DateTimePatternGenerator for (say) “fr”. Something’s wrong.
It may be possible that the ’small-icu’ is too small and is missing something.
Ooh, this may actually be due to https://unicode-org.atlassian.net/browse/ICU-20558 which we are discussing in ICU-TC at this very instant. If so it's not a v8 bug strictly but was a regression in ICU 63 (and 64)
OK so confirmed, IF it were possible to compile ICU 62 against v12/master's v8 (which it isn't with out HACK HACK HACK => https://github.com/srl295/node/commit/5972e3e5163a5901d10dd4d310675fd788d42d5e ) that this would not be seen.
So I can confirm this is an ICU 63 regression.
@srl295 Node 12 doesn't have V8 74 yet?
@ryzokuken 62/63 are ICU not v8 versions
OK, so I verified that the open ICU PR https://github.com/unicode-org/icu/pull/632 applied as a floating patch against ICU 63.x and also upcoming 64.x resolves this. Once the ICU PR lands, I'll open a PR as a floating patch. (@ryzokuken it won't conflict with your PR)
#
# Fatal error in , line 0
# Check failed: U_SUCCESS(status).
#
#
#
#FailureMessage Object: 000000FB603EDB50
Note that this does not repro with the following, because the issue has to do with the default locale.
node -p "new Intl.DateTimeFormat(['ja']).format(new Date())"
webpack --watch
and tsc --watch
threw the same error:
#
# Fatal error in , line 0
# Check failed: U_SUCCESS(status).
#
#
#
#FailureMessage Object: 0x7ffc98e77040fish: 'tsc --watch' terminated by signal SIGILL
Issues: #31111
no hotfix for this?
@bluelovers I'm not sure what you are asking. https://github.com/nodejs/node/pull/27415 is the PR that fixes this.
@srl295 sry, i mean a released hotfix like 12.0.x
@bluelovers it's set to be fast tracked, so dot version soon after it lands…?
PR landed. Proposing a release in https://github.com/nodejs/node/pull/27440 for 2019-04-29.
Most helpful comment
OK, so I verified that the open ICU PR https://github.com/unicode-org/icu/pull/632 applied as a floating patch against ICU 63.x and also upcoming 64.x resolves this. Once the ICU PR lands, I'll open a PR as a floating patch. (@ryzokuken it won't conflict with your PR)