test_justintime fails in locally (ArchLinux) but not in CI
Created originally on Bitbucket by avmo (Ashwin Vishnu)
Error log
❯❯❯ pytest transonic/test_justintime.py (gfdyn)
================================================================================== test session starts ==================================================================================
platform linux -- Python 3.7.2, pytest-4.1.1, py-1.7.0, pluggy-0.7.1
rootdir: /home/avmo/src/gfdyn/transonic, inifile:
plugins: xdist-1.26.0, forked-0.2, cov-2.6.1
collected 4 items
transonic/test_justintime.py ...F [100%]
======================================================================================= FAILURES ========================================================================================
____________________________________________________________________________________ test_jit_method ____________________________________________________________________________________
def test_jit_method():
from .for_test_justintime import MyClass
obj = MyClass()
obj.check()
if not pythran:
return
obj = MyClass()
obj.check()
wait_for_all_extensions()
> obj.check()
transonic/test_justintime.py:133:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
transonic/for_test_justintime.py:55: in check
assert self.myfunc(1) == 3
../../../.transonic/__jit_classes__/transonic/for_test_justintime/MyClass.py:12: in __new_method__MyClass__myfunc
return __for_method__MyClass__myfunc(self.attr0, self.attr1, arg)
transonic/justintime.py:403: in type_collector
self.path_extension, name_mod
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
path = PosixPath('/home/avmo/.transonic/__jit__/__jit_classes__/transonic/for_test_justintime/MyClass/__for_method__MyClass__myfunc_1a561a32e66dbed370c2ca73ad4a8e16_cc85ed47cd216c9460058222831d443a.cpython-37m-x86_64-linux-gnu.so')
def import_from_path(path: Path, module_name: str):
"""Import a .py file or an extension from its path
"""
if not path.exists():
raise ImportError(
> f"File {path} does not exist. "
f"[path.name for path in path.parent.glob('*')]:\n{[path.name for path in path.parent.glob('*')]}\n"
)
E ImportError: File /home/avmo/.transonic/__jit__/__jit_classes__/transonic/for_test_justintime/MyClass/__for_method__MyClass__myfunc_1a561a32e66dbed370c2ca73ad4a8e16_cc85ed47cd216c9460058222831d443a.cpython-37m-x86_64-linux-gnu.so does not exist. [path.name for path in path.parent.glob('*')]:
E ['__for_method__MyClass__myfunc.py', '__for_method__MyClass__myfunc.pythran']
transonic/util.py:240: ImportError
--------------------------------------------------------------------------------- Captured stdout call ----------------------------------------------------------------------------------
Pythranizing /home/avmo/.transonic/__jit__/__jit_classes__/transonic/for_test_justintime/MyClass/__for_method__MyClass__myfunc.py
--------------------------------------------------------------------------------- Captured stderr call ----------------------------------------------------------------------------------
INFO Schedule pythranization of file /home/avmo/.transonic/__jit__/__jit_classes__/transonic/for_test_justintime/MyClass/__for_method__MyClass__myfunc.py
INFO sys file exists: /scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/pythran.cfg
INFO platform file exists: /scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/pythran-linux.cfg
INFO user file exists: /home/avmo/.pythranrc
INFO pythranrc section [pythran] is valid and options are correct
INFO pythranrc section [typing] is valid and options are correct
INFO pythranrc section [compiler] is valid and options are correct
Traceback (most recent call last):
File "/scratch/avmo/opt/gfdyn/bin/pythran", line 11, in <module>
sys.exit(run())
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/run.py", line 166, in run
**compile_flags(args))
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/toolchain.py", line 469, in compile_pythranfile
**kwargs)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/toolchain.py", line 394, in compile_pythrancode
module_dir)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/toolchain.py", line 141, in generate_cxx
optimizations, module_dir)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/toolchain.py", line 109, in front_middle_end
refine(pm, ir, optimizations)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/middlend.py", line 22, in refine
pm.apply(ExpandBuiltins, node)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/passmanager.py", line 218, in apply
res = a.apply(node, ctx)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/passmanager.py", line 179, in apply
new_node = self.run(node, ctx)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/passmanager.py", line 172, in run
n = super(Transformation, self).run(node, ctx)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/passmanager.py", line 115, in run
return self.visit(node)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/passmanager.py", line 81, in visit
return super(ContextManager, self).visit(node)
File "/usr/lib64/python3.7/ast.py", line 262, in visit
return visitor(node)
File "/usr/lib64/python3.7/ast.py", line 317, in generic_visit
value = self.visit(value)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/passmanager.py", line 81, in visit
return super(ContextManager, self).visit(node)
File "/usr/lib64/python3.7/ast.py", line 262, in visit
return visitor(node)
File "/usr/lib64/python3.7/ast.py", line 317, in generic_visit
value = self.visit(value)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/passmanager.py", line 81, in visit
return super(ContextManager, self).visit(node)
File "/usr/lib64/python3.7/ast.py", line 262, in visit
return visitor(node)
File "/scratch/avmo/opt/gfdyn/lib/python3.7/site-packages/pythran/transformations/expand_builtins.py", line 39, in visit_Name
s not in self.locals[node] and
KeyError: <gast.gast.Name object at 0x7fcfe28d0c50>
Error! File /home/avmo/.transonic/__jit__/__jit_classes__/transonic/for_test_justintime/MyClass/__for_method__MyClass__myfunc_1a561a32e66dbed370c2ca73ad4a8e16_cc85ed47cd216c9460058222831d443a.cpython-37m-x86_64-linux-gnu.so has not been created by Pythran
----------------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------------
pythranizer.py 156 INFO Schedule pythranization of file /home/avmo/.transonic/__jit__/__jit_classes__/transonic/for_test_justintime/MyClass/__for_method__MyClass__myfunc.py