-
Notifications
You must be signed in to change notification settings - Fork 18k
x/text/unicode/norm: tests run over 10 minutes and time out on js/wasm #31282
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
Comments
One of the tests downloads data, but that should be disabled either way, and doubly so because the --short flag is used. It runs in a few seconds on my laptop. I had performance issues with this package before a long time ago, but that was at compile/link time. The package has some fairly large tables included in the tests, which may be an issue (see data<Unicode_version>_test.go). |
Yeah, I only see 1.9 seconds on Linux too. Must be the tables. |
I can reproduce the js/wasm slowness locally with nodejs 8.11.1. perf top says it's all spent in |
And notably, I never see any output even with
And if I add a TestMain func to just skip all tests on js/wasm, I still see it spin 100% CPU ~forever:
|
I guess that means the Go code hasn't started to run -- all the time spent in V8 trying to compile the Wasm bytecode to machine code? |
@cherrymui, oh, I hadn't thought of that. I assumed it was stuck in Go |
For me, the |
Here's the wasm module if others are interested at debugging: norm.test.gz |
Ben Titzer (V8 team) said we should use V8 7.4+. (so min Node.js 12.x.) I'll update our builders. |
Change https://golang.org/cl/175098 mentions this issue: |
Before: $ docker run -ti gcr.io/symbolic-datum-552/js-wasm /usr/bin/nodejs --version v8.11.1 After: $ docker run -ti gcr.io/symbolic-datum-552/js-wasm /usr/bin/nodejs --version v12.1.0 Also update the Makefile to permit building separately from pushing. Updates golang/go#31282 Change-Id: I3b5fd47ab41abc7721ffa48bc3f577832db24bb2 Reviewed-on: https://go-review.googlesource.com/c/build/+/175098 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Richard Musiol <neelance@gmail.com>
The upgrade to Node 12 didn't fix it. It's at least completing and passing on the dashboard (sometimes?) now, but it's super slow. Logs show a median of 833 seconds over the past week for running And I can reproduce locally on my dev machines:
|
It is indeed the tables, but now when I run it in Chrome 75 (linux/amd64), the tests start to run immediately. So I think it's a matter of time before NodeJS catches up to the latest. |
|
Change https://golang.org/cl/202641 mentions this issue: |
I'm hoping the V8 bump gets us past some tests that were too slow before. Updates golang/go#31282 (slow x/text/unicode/norm) Change-Id: I80bdded59c0148c4d3f277acc82c5cac7a339666 Reviewed-on: https://go-review.googlesource.com/c/build/+/202641 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Still timing out: https://build.golang.org/log/f335ee54a276e1b0a34bfaf31336aab8ec397348 |
@titzer, we're using NodeJS 13 now (V8 7.8.279.17) and this is still failing for us. Could you take a look? Or should we file a V8 bug? |
I'm hoping the V8 bump gets us past some tests that were too slow before. Updates golang/go#31282 (slow x/text/unicode/norm) Change-Id: I80bdded59c0148c4d3f277acc82c5cac7a339666 Reviewed-on: https://go-review.googlesource.com/c/build/+/202641 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Still failing. Some examples; all apparently stuck in
It's not at all clear to me why the builders are not producing at least some output for the stuck test (CC @andybons). |
The latest nightly of Node.js still fails to instantiate the WebAssembly module in a reasonable amount of time. It reports the following V8 version:
However, Chrome 80.0.3987.163 with V8 8.0.426.30 is able to instantiate the module in a few seconds. Node.js is using the newer V8 version, so I guess the issue is on Node.js' side, not V8's. |
What's so hard about x/text/unicode/norm that makes it kill js/wasm?
https://build.golang.org/log/275a5abfdca723fd4574927bd1e076ee93e04ee8
/cc @neelance @cherrymui @mpvl
The text was updated successfully, but these errors were encountered: