Storage Spaces (RAID volumes) under Windows 8.1 / Server 2012 R2 use ReFS which does not support hard links.
If the Users directory has been moved to a ReFS volume, it causes any script that uses os.link to hang (pip is one of the notable examples). As a side effect -- this also makes it so that Python can not be uninstalled if pip is installed. The script must be terminated with a ctrl-c.
Tested under 3.5.0b3 as well as 3.4.3 (x64 as well as x32).
Traceback from ctrl-c on 'pip list':
I:\>pip list
Traceback (most recent call last):
File "C:\Program Files\Python 3.5\lib\site-packages\pip\_vendor\lockfile\linkl
ockfile.py", line 30, in acquire
os.link(self.unique_name, self.lock_file)
OSError: [WinError 50] The request is not supported: 'I:\\Users\\[[USER NAME REMOVED]]\\AppData\
\Local\\pip\\Cache\\[[COMPUTER NAME REMOVED]]-1d14.781968199621979134564595' -> 'I:\\Users\
\[[USER NAME REMOVED]]\\AppData\\Local\\pip\\Cache\\selfcheck.json.lock'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\Python 3.5\lib\runpy.py", line 170, in _run_module_as_m
ain
"__main__", mod_spec)
File "C:\Program Files\Python 3.5\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python 3.5\Scripts\pip.exe\__main__.py", line 9, in <mo
dule>
File "C:\Program Files\Python 3.5\lib\site-packages\pip\__init__.py", line 217
, in main
return command.main(cmd_args)
File "C:\Program Files\Python 3.5\lib\site-packages\pip\basecommand.py", line
220, in main
pip_version_check(session)
File "C:\Program Files\Python 3.5\lib\site-packages\pip\utils\outdated.py", li
ne 134, in pip_version_check
state.save(pypi_version, current_time)
File "C:\Program Files\Python 3.5\lib\site-packages\pip\utils\outdated.py", li
ne 71, in save
with lockfile.LockFile(self.statefile_path):
File "C:\Program Files\Python 3.5\lib\site-packages\pip\_vendor\lockfile\__ini
t__.py", line 238, in __enter__
self.acquire()
File "C:\Program Files\Python 3.5\lib\site-packages\pip\_vendor\lockfile\linkl
ockfile.py", line 49, in acquire
time.sleep(timeout is not None and timeout/10 or 0.1)
KeyboardInterrupt
|