[Pkg-javascript-devel] Help with node-webfont test failures on 3 arches - possibly wasm related?

Julian Gilbey jdg at debian.org
Tue Feb 14 22:24:08 GMT 2023


I've just submitted node-webfont to ci.debian.net and had failures on
three architectures.  One (armel) appears to be just timeouts, so
that's easy to handle.  But it's also failing on ppc64el and s390x,
and there I'm stuck.
(https://ci.debian.net/packages/n/node-webfont/)

On s390x, it's consistently giving errors like the following:

  ● standalone › should generate all fonts

    RuntimeError: memory access out of bounds

      at apply (wasm:/wasm/002b93d6:1:301634)
      at ___getTypeName (../../../../../usr/share/nodejs/wawoff2/build/compress_binding.js:1:988803)
      at map (../../../../../usr/share/nodejs/wawoff2/build/compress_binding.js:1:978204)
          at Array.map (<anonymous>)
      at throwUnboundTypeError (../../../../../usr/share/nodejs/wawoff2/build/compress_binding.js:1:978615)
      at Object.compress (../../../../../usr/share/nodejs/wawoff2/build/compress_binding.js:1:978916)
      at Object.compress (../../../../../usr/share/nodejs/wawoff2/compress.js:11:28)
      at webfont (src/standalone/index.ts:164:20)
      at Object.<anonymous> (src/standalone/index.test.ts:36:20)

My guess is that s390x can't handle wasm, or something like that, but
if that's not the issue, then I have no idea.  This code is generated
by emscripten, so I presumed it should be able to run on all
architectures, but clearly I'm wrong!

I have tried building the package on the s390x porter machine, and it
fails with exactly the same error during the build (though when
testing the included wawoff2 package; that is clearly the source of
the issue).

The issue on ppc64el seems superficially similar, though the error
messages are different:

  ● standalone › should generate all fonts

    RuntimeError: float unrepresentable in integer range

      at null.<anonymous> (wasm:/wasm/002b93d6:1:294463)
      at null.<anonymous> (wasm:/wasm/002b93d6:1:306036)
      at compress (wasm:/wasm/002b93d6:1:301816)
      at Object.compress (eval at new_ (../../../../../usr/share/nodejs/wawoff2/build/compress_binding.js:1:973177), <anonymous>:8:10)
      at Object.compress (../../../../../usr/share/nodejs/wawoff2/compress.js:11:28)
      at webfont (src/standalone/index.ts:164:20)
      at Object.<anonymous> (src/standalone/index.test.ts:36:20)


If these two architectures (s390x and ppc64el) can't handle it because
of wasm, how can I specify that node-webfont should only be
installable on certain architectures?  Is there some package I should
build-time and run-time depend on to enforce this?  (node-webfont is
currently an Architecture: all package.)

Thanks for any advice on this!

Best wishes,

   Julian



More information about the Pkg-javascript-devel mailing list