[Pkg-javascript-devel] Bug#973220: node-libnpx: FTBFS: dh_auto_test: error: /bin/sh -ex debian/tests/pkg-js/test returned exit code 123

Lucas Nussbaum lucas at debian.org
Tue Oct 27 17:07:22 GMT 2020


Source: node-libnpx
Version: 10.2.1-2
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20201027 ftbfs-bullseye

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.

Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> tail -n +2 README.md | marked-man --manual 'User Commands' --version libnpx@$(dpkg-parsechangelog -S version) > libnpx.1
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_auto_test --buildsystem=nodejs
> 	ln -s ../. node_modules/libnpx
> 	/bin/sh -ex debian/tests/pkg-js/test
> + export LANG=C
> + export NODE_PATH=node_modules
> + pwd
> + export HOME=/<<PKGBUILDDIR>>
> + ls test/auto-fallback.js test/child.js test/get-prefix.js test/guess-command-name.js test/index.js test/parse-args.js test/util.js
> + grep -v test/auto-fallback.js
> + xargs tap
> TAP version 13
> # Subtest: test/child.js
>     # Subtest: escapeArg on *nix
>         ok 1 - standard arg left intact
>         ok 2 - '-escaped on *nix
>         ok 3 - paths escaped as usual
>         1..3
>     ok 1 - escapeArg on *nix # time=4.407ms
>     
>     # Subtest: escapeArg on win32
>         ok 1 - standard arg escaped
>         ok 2 - "-escaped on win32
>         ok 3 - paths escaped as usual
>         1..3
>     ok 2 - escapeArg on win32 # time=1.253ms
>     
>     # Subtest: exec
>         ok 1 - command string concatenated
>         ok 2 - options received!
>         ok 3 - unix-style escapes
>         ok 4 - win32-style escapes
>         ok 5 - got error
>         1..5
>     ok 3 - exec # time=11.291ms
>     
>     # Subtest: exec (integration)
>         ok 1 - node ran successfully
>         ok 2 - got the exit code from subproc
>         1..2
>     ok 4 - exec (integration) # time=149.221ms
>     
>     # Subtest: spawn
>         ok 1 - should be equivalent
>         ok 2 - got the exit code from
>         1..2
>     ok 5 - spawn # time=174.839ms
>     
>     # Subtest: runCommand with command arg
>         ok 1 - should be equivalent
>         ok 2 - got the exit code from subproc
>         ok 3 - error message reports ENOENT
>         ok 4 - "not found" has code 127
>         1..4
>     ok 6 - runCommand with command arg # time=152.75ms
>     
>     # Subtest: runCommand with opts.command
>         ok 1 - should be equivalent
>         1..1
>     ok 7 - runCommand with opts.command # time=85.887ms
>     
>     # Subtest: runCommand with opts.call and opts.shell
>         ok 1 - should be equivalent
>         1..1
>     ok 8 - runCommand with opts.call and opts.shell # time=68.64ms
>     
>     1..8
>     # time=657.906ms
> ok 1 - test/child.js # time=828.454ms
> 
> # Subtest: test/get-prefix.js
> /usr/share/nodejs/tap/lib/extra-from-error.js:6
>     if (!(k in set) && !/^tapChild/.test(k))
>             ^
> 
> TypeError: Cannot use 'in' operator to search for 'name' in uncaughtException
>     at /usr/share/nodejs/tap/lib/extra-from-error.js:6:13
>     at Array.reduce (<anonymous>)
>     at module.exports (/usr/share/nodejs/tap/lib/extra-from-error.js:5:38)
>     at TAP.threw (/usr/share/nodejs/tap/lib/test.js:658:15)
>     at process.emit (events.js:326:22)
>     at process.emit (/usr/share/nodejs/source-map-support/source-map-support.js:495:21)
>     at processEmit [as emit] (/usr/share/nodejs/signal-exit/index.js:161:32)
>     at process._fatalException (internal/process/execution.js:165:25)
>     1..0 # no tests found
> not ok 2 - test/get-prefix.js # time=190.364ms
>   ---
>   timeout: 30000
>   file: test/get-prefix.js
>   command: /usr/bin/node
>   args:
>     - test/get-prefix.js
>   stdio:
>     - 0
>     - pipe
>     - 2
>   cwd: /<<PKGBUILDDIR>>
>   exitCode: 7
>   ...
> 
> # Subtest: test/guess-command-name.js
>     # Subtest: guesses unscoped registry binaries
>         ok 1 - should be equal
>         1..1
>     ok 1 - guesses unscoped registry binaries # time=24.712ms
>     
>     # Subtest: guesses scoped registry binaries
>         ok 1 - should be equal
>         1..1
>     ok 2 - guesses scoped registry binaries # time=0.911ms
>     
>     # Subtest: guesses hosted git binaries
>         ok 1 - should be equal
>         ok 2 - should be equal
>         1..2
>     ok 3 - guesses hosted git binaries # time=5.405ms
>     
>     # Subtest: guesses git binaries
>         ok 1 - should be equal
>         ok 2 - should be equal
>         1..2
>     ok 4 - guesses git binaries # time=1.544ms
>     
>     # Subtest: leaves local directory/file commands intact
>         ok 1 - should be equal
>         ok 2 - should be equal
>         ok 3 - should be equal
>         ok 4 - should be equal
>         1..4
>     ok 5 - leaves local directory/file commands intact # time=1.58ms
>     
>     # Subtest: guesses remote tarballs
>         ok 1 - should be equal
>         ok 2 - should be equal
>         ok 3 - should be equal
>         1..3
>     ok 6 - guesses remote tarballs # time=1.436ms
>     
>     # Subtest: guesses local tarballs
>         ok 1 - should be equal
>         ok 2 - should be equal
>         ok 3 - should be equal
>         1..3
>     ok 7 - guesses local tarballs # time=0.827ms
>     
>     # Subtest: warns when something could not be guessed
>         ok 1 - should match pattern provided
>         1..1
>     ok 8 - warns when something could not be guessed # time=19.422ms
>     
>     1..8
>     # time=72.967ms
> ok 3 - test/guess-command-name.js # time=234.797ms
> 
> # Subtest: test/index.js
>     # Subtest: npx --shell-auto-fallback
>         ok 1 - command succeeded
>         ok 2 - got shell code in output
>         1..2
>     ok 1 - npx --shell-auto-fallback # time=123.199ms
>     
>     # Subtest: npx no command
>         ok 1 - got 1 as exit code
>         ok 2 - got a useful error message
>         ok 3 - npx help printed
>         1..3
>     ok 2 - npx no command # time=164.498ms
>     
>     # Subtest: npx existing subcommand
>         ok 1 - no stderr output
>         ok 2 - got output from command
>         1..2
>     ok 3 - npx existing subcommand # time=98.119ms
>     
>     # Subtest: installPackages unit
>         ok 1 - args to spawn were correct for installing requested package
>         ok 2 - default stdio settings correct
>         ok 3 - non-process failure reported intact
>         ok 4 - npm install failure has helpful error message
>         ok 5 - error has exitCode
>         ok 6 - incorrectly escaped path *nix
>         1..6
>     ok 4 - installPackages unit # time=9.08ms
>     
>     # Subtest: getNpmCache
>         ok 1 - requests cache from npm
>         ok 2 - added userconfig if option present
>         1..2
>     ok 5 - getNpmCache # time=3.728ms
>     
>     # Subtest: findNodeScript
>         ok 1 - existing returned as-is on *nix
>         ok 2 - files that are not standalone node scripts are false
>         ok 3 - no node script found if existing is null
>         ok 4 - resolved dir dep to index.js
>         ok 5 - close error rethrown
>         1..5
>     ok 6 - findNodeScript # time=6.093ms
>     
>     ok 7 - noisy npx with --quiet arg on windows # SKIP Only on Windows does the path to the downloaded module get printed
>     ok 8 - nice error message when no binaries on windows # SKIP Only on Windows is the error message inscrutable
>     ok 9 - --node-arg works on Windows # SKIP Only on Windows does --node-arg have issues
>     1..9
>     # skip: 3
>     # time=411.288ms
> ok 4 - test/index.js # time=585.681ms
> 
> # Subtest: test/parse-args.js
>     # Subtest: parses basic command
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equal
>         ok 6 - should be equivalent
>         1..6
>     ok 1 - parses basic command # time=6.878ms
>     
>     # Subtest: parses command with version
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         1..4
>     ok 2 - parses command with version # time=25.06ms
>     
>     # Subtest: parses command opts
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 3 - parses command opts # time=1.513ms
>     
>     # Subtest: parses scoped package command opts
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 4 - parses scoped package command opts # time=1.737ms
>     
>     # Subtest: ignores options after command
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 5 - ignores options after command # time=1.595ms
>     
>     # Subtest: assumes unknown args before cmd have values and ignores them
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 6 - assumes unknown args before cmd have values and ignores them # time=28.236ms
>     
>     # Subtest: parses package option
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 7 - parses package option # time=2.916ms
>     
>     # Subtest: parses multiple package options
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 8 - parses multiple package options # time=2.825ms
>     
>     # Subtest: does not parse -c
>         ok 1 - stays unparsed
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 9 - does not parse -c # time=2.391ms
>     
>     # Subtest: uses -p even with -c
>         ok 1 - should be equivalent
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 10 - uses -p even with -c # time=2.372ms
>     
>     # Subtest: -p prevents command parsing
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 11 - -p prevents command parsing # time=2.319ms
>     
>     # Subtest: -- stops option parsing but still does command
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 12 - -- stops option parsing but still does command # time=2.399ms
>     
>     # Subtest: -- still respects -p
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equivalent
>         1..5
>     ok 13 - -- still respects -p # time=2.262ms
>     
>     # Subtest: allows configuration of npm binary
>         ok 1 - should be equal
>         1..1
>     ok 14 - allows configuration of npm binary # time=1.652ms
>     
>     # Subtest: treats directory-type commands specially
>         ok 1 - should be equal
>         ok 2 - should be equivalent
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - expect truthy value
>         ok 6 - should be equal
>         ok 7 - expect truthy value
>         ok 8 - should be equivalent
>         ok 9 - should be equal
>         ok 10 - should be equal
>         1..10
>     ok 15 - treats directory-type commands specially # time=4.716ms
>     
>     # Subtest: -n and --node-arg special parsing rules
>         ok 1 - should match pattern provided
>         ok 2 - should match pattern provided
>         ok 3 - should match pattern provided
>         ok 4 - should match pattern provided
>         ok 5 - should match pattern provided
>         ok 6 - should match pattern provided
>         ok 7 - should match pattern provided
>         ok 8 - should match pattern provided
>         ok 9 - should match pattern provided
>         ok 10 - should match pattern provided
>         1..10
>     ok 16 - -n and --node-arg special parsing rules # time=13.374ms
>     
>     1..16
>     # time=136.714ms
> ok 5 - test/parse-args.js # time=305.97ms
> 
> # Subtest: test/util.js
>     # Subtest: promisify with existing util.promisify
>         ok 1 - used existing promisify fn
>         1..1
>     ok 1 - promisify with existing util.promisify # time=4.669ms
>     
>     # Subtest: promisify without existing util.promisify
>         ok 1 - got a thenable
>         ok 2 - value passed through successfully
>         ok 3 - got the error!
>         1..3
>     ok 2 - promisify without existing util.promisify # time=3.321ms
>     
>     1..2
>     # time=14.899ms
> ok 6 - test/util.js # time=183.092ms
> 
> 1..6
> # failed 1 of 6 tests
> # time=2346.508ms
> dh_auto_test: error: /bin/sh -ex debian/tests/pkg-js/test returned exit code 123

The full build log is available from:
   http://qa-logs.debian.net/2020/10/27/node-libnpx_10.2.1-2_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.



More information about the Pkg-javascript-devel mailing list