Multiple changes to NSPR tests, find the mimimum set of tests that currently work on all platforms, prepare to reenable CI in 2019.
Categories
(NSPR :: NSPR, defect, P1)
Tracking
(Not tracked)
People
(Reporter: KaiE, Assigned: KaiE)
References
Details
Attachments
(3 files, 6 obsolete files)
|
158.40 KB,
text/plain
|
Details | |
|
34.42 KB,
patch
|
jbeich
:
review+
|
Details | Diff | Splinter Review |
|
423 bytes,
patch
|
Details | Diff | Splinter Review |
I've tried to run the NSPR tests today on Linux 64bit.
The multiwait test fails. I've gone back to NSPR 4.4 from 2 which is the oldest version that I can build on my current system. The multiwait test was already failing in 4.4 so I suggest we disable it.
One more test was failing: fdcach
I found that it has started to fail with NSPR 4.10.8, because of bug 573192 which had removed the stack based fd cache. We should remove the corresponding tests.
Jan, does that make sense to you?
What results do you get if you execute NSPR runtests.sh on your system, same or more failures?
| Assignee | ||
Comment 1•6 years ago
|
||
| Assignee | ||
Comment 4•6 years ago
|
||
There are two scripts to run the scripts, sh and pl.
Jan, which one do you usually use? I don't know why are there two. The README.TXT suggests that the .pl might be more powerful, and control the set of executed tests per platform, which is supposed to be defined in a file runtests.txt, but that txt file doesn't exist.
| Assignee | ||
Comment 5•6 years ago
|
||
I'm trying to run the NSPR tests in taskcluster.
It uses hardcoded filenames in /tmp/ which we should avoid. I've changed the code to use files in the local directory instead.
There are multiple ways to run the tests:
- a runtest.sh script
- a runtest.pl script
- a Makefile rule runtests
Because the Makefile attempts to run all tests, but the scripts only run a subset (because some tests are known to fail), we should change the Makefile target to execute one of the scripts. (It's best for me to run a make target from taskcluster).
I've chosen the .sh script, as that reports the failure correctly to the caller with an exit code, allowing the make target to detect the failure.
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Updated•6 years ago
|
Changes after applying attachment 9091390 [details] [diff] [review]:
--- before
+++ after
@@ -2700,7 +2700,7 @@ dlltest Passed
dtoa Passed
errcodes Passed
exit Passed
-fdcach FAILED
+fdcach Passed
fileio Passed
foreign Passed
formattm Passed
@@ -2729,7 +2729,6 @@ lockfile Passed
logfile Passed
logger Passed
many_cv Passed
-multiwait Passed
nameshm1 Passed
nblayer Passed
nonblock Passed
(In reply to Kai Engert (:kaie:) from comment #0)
The multiwait test fails. I've gone back to NSPR 4.4 from 2 which is the
oldest version that I can build on my current system. The multiwait test was
already failing in 4.4 so I suggest we disable it.
multiwait test passes on FreeBSD, even on 11.2. I can't test other BSDs atm.
One more test was failing: fdcach
Thanks for fixing it. Downstream Mikhail fixed and enabled a few more tests: forktest, nbconn, poll_err.
https://github.com/freebsd/freebsd-ports/blob/173ce3c7ca54/devel/nspr/files/patch-tests
(In reply to Kai Engert (:kaie:) from comment #4)
There are two scripts to run the scripts, sh and pl.
Only sh but also run library tests. I don't run tests regularly because it takes too long.
https://github.com/freebsd/freebsd-ports/blob/173ce3c7ca54/devel/nspr/Makefile#L40-L42
Comment 9•6 years ago
|
||
The priority flag is not set for this bug.
:jcj, could you have a look please?
For more information, please visit auto_nag documentation.
Updated•6 years ago
|
| Assignee | ||
Comment 10•6 years ago
|
||
| Assignee | ||
Comment 11•6 years ago
|
||
| Assignee | ||
Comment 12•6 years ago
|
||
Jan, thanks for your feedback and your suggestions. Using PR_Mkdir is great idea :)
I'm reverting the changes to semaphore naming.
I'd like to execute the NSPR tests as soon as possible, and while experimenting on win/mac/linux, unfortunately many tests are failing.
I didn't have time to investigate what's failing. I would like to enable all the tests that currently work as a baseline. Then, afterwards, we can try enabling the other tests one by one, and fix code as needed.
(FYI, several of my experiments can be found at https://treeherder.mozilla.org/#/jobs?repo=nss-try - some of the more recent ones print a debug log.)
I'm attach a new patch, that disables all the tests that currently fail on at least one platform.
| Assignee | ||
Comment 13•6 years ago
|
||
Can you live with this?
| Assignee | ||
Comment 14•6 years ago
|
||
Windows behavior is a bit erratic. As soon as I disable one test, some other test starts to fail... I just disabled "parent" in addition. I wonder if there'a s problem with concurrency, if more than one test runs on the same machine.
| Assignee | ||
Comment 15•6 years ago
|
||
| Assignee | ||
Updated•6 years ago
|
Comment 16•6 years ago
|
||
Comment 17•6 years ago
|
||
pr/tests/parent sometimes fails on FreeBSD. Could be a race in the test or a bug in NSPR abstraction or a kernel bug. Compared to previous testing my CPU was 75% (or less) busy i.e., 6/8 logical cores dedicated to package building.
I've attached the log from a successful run with changes proposed in comment 16.
| Assignee | ||
Comment 18•6 years ago
|
||
(In reply to Jan Beich from comment #16)
Consider changing to: #!/usr/bin/env bash
well, let's stay with /bin/sh and use your suggestion below.
Missing : (colon) before "usage" and "$0". Also, can be simplified to
ok
: ${1:?"usage: $0 <path-to-dist>"}
I think that's difficult to read. I'd like to keep my simpler version.
cd $1/lib ABS_LIB=$PWD cd -
ok, with that we can keep /bin/sh
| Assignee | ||
Comment 19•6 years ago
|
||
This patch changes the port numbers, and names of semaphores, based on debug/opt and 32/64 bit, and should be more resistent to parallel execution of tests on the same machine.
| Assignee | ||
Comment 20•6 years ago
|
||
| Assignee | ||
Updated•6 years ago
|
Comment 21•6 years ago
|
||
Comment 22•6 years ago
•
|
||
| Assignee | ||
Comment 23•6 years ago
|
||
(In reply to Jan Beich from comment #22)
Maybe bad UX outside of automation. When a test fails its name can be
determined from the summary, so user can rerun the test manually and analyze
its verbose output. However, verbose output doesn't annotate test failures,
so printing large $LOGFILE may consume entire scroll buffer, leaving user
guessing which test actually failed.${PAGER:-cat} may help.
Good point.
Alternatively, maybe an environment variable to disable the cat?
| Assignee | ||
Comment 24•6 years ago
|
||
| Assignee | ||
Comment 25•6 years ago
|
||
| Assignee | ||
Comment 26•6 years ago
|
||
Jan, do you want the incremental patch?
| Assignee | ||
Comment 27•6 years ago
|
||
Had to disable ntioto test because it fails.
https://hg.mozilla.org/projects/nspr/rev/50c1448672f16e98895a256575bdc0a382d1c0a5
Note the failure occurred with a revision that DIDN'T have the change from bug 1586070 yet.
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Comment 28•6 years ago
|
||
Fixed, minus the pending change, which was optional and didn't get a review yet.
Comment 29•6 years ago
|
||
FWIW, multiwait passes on Debian.
Description
•