Skip to content

Test test_compilation_listener.py::test_compile_stats fails on Windows #4261

@pbchekin

Description

@pbchekin

https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/15154870476/job/42607655421#step:15:22380

Two errors: AssertionError and exception at teardown.

FAILED runtime\test_compilation_listener.py::test_compile_stats - AssertionError: assert 0 > 0
 +  where 0 = CompileTimes(ir_initialization=8714, lowering_stages=[('ttir', 8849), ('ttgir', 8927), ('llir', 149691), ('spv', 8734)], store_results=0).store_resultsERROR runtime\test_compilation_listener.py::test_compile_stats - NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\vagrant\\AppData\\Local\\Temp\\tmps3m_q818\\JUPGTR6TKKEMUT7CYNFUVJOJYFSRKMM6RICRYRZQ33YG4TEFSSGQ\\__triton_launcher.cp39-win_amd64.pyd'
___________________ ERROR at teardown of test_compile_stats ___________________

path = 'C:\\Users\\vagrant\\AppData\\Local\\Temp\\tmps3m_q818\\JUPGTR6TKKEMUT7CYNFUVJOJYFSRKMM6RICRYRZQ33YG4TEFSSGQ'
onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x0000025BCAEA9670>

    def _rmtree_unsafe(path, onerror):
        try:
            with os.scandir(path) as scandir_it:
                entries = list(scandir_it)
        except OSError:
            onerror(os.scandir, path, sys.exc_info())
            entries = []
        for entry in entries:
            fullname = entry.path
            if _rmtree_isdir(entry):
                try:
                    if entry.is_symlink():
                        # This can only happen if someone replaces
                        # a directory with a symlink after the call to
                        # os.scandir or entry.is_dir above.
                        raise OSError("Cannot call rmtree on a symbolic link")
                except OSError:
                    onerror(os.path.islink, fullname, sys.exc_info())
                    continue
                _rmtree_unsafe(fullname, onerror)
            else:
                try:
>                   os.unlink(fullname)
E                   PermissionError: [WinError 5] Access is denied: 'C:\\Users\\vagrant\\AppData\\Local\\Temp\\tmps3m_q818\\JUPGTR6TKKEMUT7CYNFUVJOJYFSRKMM6RICRYRZQ33YG4TEFSSGQ\\__triton_launcher.cp39-win_amd64.pyd'

c:\hostedtoolcache\Python\3.9.13\x64\lib\shutil.py:627: PermissionError

During handling of the above exception, another exception occurred:

func = <built-in function unlink>
path = 'C:\\Users\\vagrant\\AppData\\Local\\Temp\\tmps3m_q818\\JUPGTR6TKKEMUT7CYNFUVJOJYFSRKMM6RICRYRZQ33YG4TEFSSGQ\\__triton_launcher.cp39-win_amd64.pyd'
exc_info = (<class 'PermissionError'>, PermissionError(13, 'Access is denied'), <traceback object at 0x0000025BCAF6B940>)

    def onerror(func, path, exc_info):
        if issubclass(exc_info[0], PermissionError):
            def resetperms(path):
                try:
                    _os.chflags(path, 0)
                except AttributeError:
                    pass
                _os.chmod(path, 0o700)
    
            try:
                if path != name:
                    resetperms(_os.path.dirname(path))
                resetperms(path)
    
                try:
>                   _os.unlink(path)
E                   PermissionError: [WinError 5] Access is denied: 'C:\\Users\\vagrant\\AppData\\Local\\Temp\\tmps3m_q818\\JUPGTR6TKKEMUT7CYNFUVJOJYFSRKMM6RICRYRZQ33YG4TEFSSGQ\\__triton_launcher.cp39-win_amd64.pyd'

c:\hostedtoolcache\Python\3.9.13\x64\lib\tempfile.py:805: PermissionError

During handling of the above exception, another exception occurred:

    @pytest.fixture
    def fresh_triton_cache():
        with tempfile.TemporaryDirectory() as tmpdir:
            from triton import knobs
            with knobs.cache.scope():
                knobs.cache.dir = tmpdir
>               yield tmpdir

conftest.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
c:\hostedtoolcache\Python\3.9.13\x64\lib\tempfile.py:830: in __exit__
    self.cleanup()
c:\hostedtoolcache\Python\3.9.13\x64\lib\tempfile.py:834: in cleanup
    self._rmtree(self.name)
c:\hostedtoolcache\Python\3.9.13\x64\lib\tempfile.py:816: in _rmtree
    _shutil.rmtree(name, onerror=onerror)
c:\hostedtoolcache\Python\3.9.13\x64\lib\shutil.py:759: in rmtree
    return _rmtree_unsafe(path, onerror)
c:\hostedtoolcache\Python\3.9.13\x64\lib\shutil.py:624: in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
c:\hostedtoolcache\Python\3.9.13\x64\lib\shutil.py:629: in _rmtree_unsafe
    onerror(os.unlink, fullname, sys.exc_info())
c:\hostedtoolcache\Python\3.9.13\x64\lib\tempfile.py:808: in onerror
    cls._rmtree(path)
c:\hostedtoolcache\Python\3.9.13\x64\lib\tempfile.py:816: in _rmtree
    _shutil.rmtree(name, onerror=onerror)
c:\hostedtoolcache\Python\3.9.13\x64\lib\shutil.py:759: in rmtree
    return _rmtree_unsafe(path, onerror)
c:\hostedtoolcache\Python\3.9.13\x64\lib\shutil.py:610: in _rmtree_unsafe
    onerror(os.scandir, path, sys.exc_info())
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = 'C:\\Users\\vagrant\\AppData\\Local\\Temp\\tmps3m_q818\\JUPGTR6TKKEMUT7CYNFUVJOJYFSRKMM6RICRYRZQ33YG4TEFSSGQ\\__triton_launcher.cp39-win_amd64.pyd'
onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x0000025BCAEA9DC0>

    def _rmtree_unsafe(path, onerror):
        try:
>           with os.scandir(path) as scandir_it:
E           NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\vagrant\\AppData\\Local\\Temp\\tmps3m_q818\\JUPGTR6TKKEMUT7CYNFUVJOJYFSRKMM6RICRYRZQ33YG4TEFSSGQ\\__triton_launcher.cp39-win_amd64.pyd'

c:\hostedtoolcache\Python\3.9.13\x64\lib\shutil.py:607: NotADirectoryError

Metadata

Metadata

Assignees

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions