Closed
Bug 931882
Opened 11 years ago
Closed 11 years ago
Jit-test test basic/bug908915.js times out on Android
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla28
People
(Reporter: dminor, Assigned: dougc)
References
Details
Attachments
(3 files, 3 obsolete files)
1.19 KB,
patch
|
dougc
:
review+
|
Details | Diff | Splinter Review |
1.08 KB,
patch
|
dougc
:
review+
|
Details | Diff | Splinter Review |
1.18 KB,
patch
|
dougc
:
review+
|
Details | Diff | Splinter Review |
As can be seen here [1], the basic/bug908914.js test is consistently timing out on Android.
Unfortunately, the test appears to be retried automatically, causing a large number of failed test runs to occur.
[1] https://tbpl.mozilla.org/?tree=Cedar&rev=2d3ca4d9d3b9
Comment 1•11 years ago
|
||
Also testBullet.js and testCaching.js appear to perma-fail, probably because we can't assume a filesystem on android.
Marty, are these tests expected to fail on ARM?
Flags: needinfo?(mrosenberg)
Comment 2•11 years ago
|
||
I can test in a browser (with bug 929236) and caching does work on ARM, so the failures are probably specific to the shell setup. From the failures, I'm guessing some of the filesystem I/O operations in ShellOpenAsmJSCacheEntryFor(Read|Write) (js/src/shell/js.cpp) are failing which cause the cache entry not to be written. If anyone can run this locally: perhaps you could put in some printfs in these functions to see which call is failing?
Note: the cache file directory is set by --js-cache and this is js/src/jit-test/.js-cache for jit-tests.py (see JS_CACHE_DIR in js/src/tests/lib/jitttest.py). Furthermore, in multi-process builds, jit-tests.py passes --js-cache-per-process which makes a new subdir under the .js-cache for each process so that parallel tests don't clobber each other's cache files.
Reporter | ||
Comment 3•11 years ago
|
||
The testBullet.js and testCaching.js failures reproduce for me on my pandaboard, so I'll have a look. Unfortunately basic/bug908914.js works locally.
Reporter | ||
Comment 4•11 years ago
|
||
Filed bug 932940 to fix the --js-cache problem for Android.
Comment 6•11 years ago
|
||
No, it remains unfixed.
Reporter | ||
Comment 7•11 years ago
|
||
Can we disable this test in the meantime?
If this stabilizes things on Cedar, then we can enable jit-tests on Try for Android which would make it easier to investigate this problem for people without pandaboards.
Flags: needinfo?(terrence)
Comment 8•11 years ago
|
||
Yes, I think it makes sense to at least get the tests that do currently work running asap. Please file a follow-up bug and CC myself and luke.
Flags: needinfo?(terrence)
Assignee | ||
Comment 9•11 years ago
|
||
(In reply to Luke Wagner [:luke] from comment #2)
> I can test in a browser (with bug 929236) and caching does work on ARM, so
> the failures are probably specific to the shell setup. From the failures,
> I'm guessing some of the filesystem I/O operations in
> ShellOpenAsmJSCacheEntryFor(Read|Write) (js/src/shell/js.cpp) are failing
> which cause the cache entry not to be written. If anyone can run this
> locally: perhaps you could put in some printfs in these functions to see
> which call is failing?
ShellOpenAsmJSCacheEntryForWrite
jsCacheAsmJSPath: /data/local/tmp/tests/jit-tests/jit-tests/.js-cache/27388/asmjs.cache
jsCacheDir: /data/local/tmp/tests/jit-tests/jit-tests/.js-cache/27388
If the .js-cache directory does not already exist then mkdir .../.js-cache/27388 fails.
If the .js-cache directory is manually created before running the test then is succeeds.
Should jit-test create the .js-cache directory, or should the js shell?
Also noticed while testing that nestedShell("--js-cache", ...) tries to pass a directory even if none was defined and it passes '(null)'. Perhaps it could be guarded:
NestedShell(JSContext *cx, unsigned argc, jsval *vp)
{
...
if (!strcmp(argv.back(), "--js-cache") && jsCacheDir) {
Comment 10•11 years ago
|
||
(In reply to Douglas Crosher [:dougc] from comment #9)
> If the .js-cache directory is manually created before running the test then
> is succeeds.
>
> Should jit-test create the .js-cache directory, or should the js shell?
The jit-test harness should be creating the .js-cache directory. I *thought* that's what the patch in bug 932940 was doing. The relevant line is the dm.mkDirs(Test.CacheDir) in run_tests_remote in jittests.py
> if (!strcmp(argv.back(), "--js-cache") && jsCacheDir) {
Sounds good
Reporter | ||
Comment 11•11 years ago
|
||
Bug 932940 sets up the .js-cache directory on the remote device and I also changed the mozharness script to disable parallel execution for ARM. This fixed the testBullet.js and testCaching.js tests that Terrence mentioned which led me to believe the timeout was not related to caching issues.
Comment 12•11 years ago
|
||
Hmm, it shouldn't have been necessary to disable parallel execution as long as the --js-cache-per-process flag was also set (which it is for non-remote jit_tests). This causes every test to get its own caching subdir so they don't clobber each other and invalidate the "is cached" assertions.
Reporter | ||
Comment 13•11 years ago
|
||
(In reply to Luke Wagner [:luke] from comment #12)
> Hmm, it shouldn't have been necessary to disable parallel execution as long
> as the --js-cache-per-process flag was also set (which it is for non-remote
> jit_tests). This causes every test to get its own caching subdir so they
> don't clobber each other and invalidate the "is cached" assertions.
We weren't running the remote tests in parallel anyway, I just made this explicit so as to avoid having to create additional .js-cache dirs on the device.
Comment 14•11 years ago
|
||
(In reply to Dan Minor [:dminor] from comment #13)
> We weren't running the remote tests in parallel anyway, I just made this
> explicit so as to avoid having to create additional .js-cache dirs on the
> device.
If you weren't running them already, that's fine, but note that --js-cache-per-process causes the process to delete its own dir at the end of running so it doesn't really create that many dirs.
Assignee | ||
Comment 15•11 years ago
|
||
Seems that mkDirs does not create the last element of the path, so .js-cache was not being created.
Attachment #832632 -
Flags: review?(dminor)
Assignee | ||
Comment 16•11 years ago
|
||
Attachment #832634 -
Flags: review?(luke)
Reporter | ||
Comment 17•11 years ago
|
||
Comment on attachment 832632 [details] [diff] [review]
Correct creation jit-test remote js-cache directory
Review of attachment 832632 [details] [diff] [review]:
-----------------------------------------------------------------
Thanks!
Attachment #832632 -
Flags: review?(dminor) → review+
Updated•11 years ago
|
Attachment #832634 -
Flags: review?(luke) → review+
Assignee | ||
Comment 18•11 years ago
|
||
Test basic/bug908915.js is invoking a nested shell and this continues to cause jit-test timeouts on Android remote testing. It would appear appropriate to simply avoid invoking a nested shell in this test.
Attachment #8334467 -
Flags: review?(luke)
Comment 19•11 years ago
|
||
Comment on attachment 8334467 [details] [diff] [review]
Avoid a invoking a nested shell
This is a funny test. Thanks Douglas!
Attachment #8334467 -
Flags: review?(luke) → review+
Assignee | ||
Comment 20•11 years ago
|
||
Fix bug description. Carrying forward r+.
Attachment #832632 -
Attachment is obsolete: true
Attachment #8335133 -
Flags: review+
Assignee | ||
Comment 21•11 years ago
|
||
Fix bug description, and rebase. Carrying forward r+.
Attachment #832634 -
Attachment is obsolete: true
Attachment #8335135 -
Flags: review+
Assignee | ||
Comment 22•11 years ago
|
||
Fix bug description. Carrying forward r+
Attachment #8334467 -
Attachment is obsolete: true
Attachment #8335136 -
Flags: review+
Assignee | ||
Updated•11 years ago
|
Keywords: checkin-needed
Comment 23•11 years ago
|
||
Comment 24•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/0fc99fa6a365
https://hg.mozilla.org/mozilla-central/rev/53d21900b302
https://hg.mozilla.org/mozilla-central/rev/768f6bfdce7d
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Reporter | ||
Comment 25•11 years ago
|
||
Thanks for looking at this! That fixed the test (and infinite retries on Cedar.)
You need to log in
before you can comment on or make changes to this bug.
Description
•