Skip to content

New scipy test fatal error after switch to meson #4310

@lesteve

Description

@lesteve

🐛 Bug

There is a new fatal error in scipy tests after switch to meson i.e. #4276. I double-checked that the error does not happen before #4276. Not sure why I did not spot this when I tried to run the tests against the PR.

To Reproduce

import numpy as np
from numpy import eye, random
from scipy.linalg import logm

random.seed(1234)
dtype = np.float64
n = 2
scale = 1e-4
A = (eye(n) + random.rand(n, n) * scale).astype(dtype)
logm(A)

Expected behavior

No error

Additional context

Here is the stack-trace:

RuntimeError: null function or function signature mismatch
    at _dop.cpython-311-wasm32-emscripten.so.ndarray_from_pyobj (VM230 _dop.cpython-311-wasm32-emscripten.so-0004011e:1:44648)
    at invoke_iiiiiiii (VM170 pyodide.asm.js:34381:36)
    at _flapack.cpython-311-wasm32-emscripten.so.f2py_rout__flapack_dgees (VM250 _flapack.cpython-311-wasm32-emscripten.so-00601166:1:242609)
    at _dop.cpython-311-wasm32-emscripten.so.fortran_call (VM230 _dop.cpython-311-wasm32-emscripten.so-0004011e:1:48030)
    at _PyEMJS_TrampolineCall (VM170 pyodide.asm.js:1722:86)
    at pyodide.asm.wasm._PyEM_TrampolineCall (VM174 pyodide.asm.wasm-025ba86e:1:2992131)
    at pyodide.asm.wasm._PyObject_MakeTpCall (VM174 pyodide.asm.wasm-025ba86e:1:1717027)
    at pyodide.asm.wasm.PyObject_Vectorcall (VM174 pyodide.asm.wasm-025ba86e:1:1718548)
    at pyodide.asm.wasm._PyEval_EvalFrameDefault (VM174 pyodide.asm.wasm-025ba86e:1:2532710)
    at pyodide.asm.wasm._PyEval_Vector (VM174 pyodide.asm.wasm-025ba86e:1:2549198)
main @ VM165 scipy-pytest.js:58

Debugging a bit it does seem that inside the ndarray_from_pyobj wasm code there is a call indirect with a null function.

In other words:

pyodide._module.wasmTable.get(stack[1].value)
null

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions