﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32223	Path.resolve(strict=True) can raise a PermissionError in autoreloader.	Mariusz Felisiak	Mariusz Felisiak	"Using `Path.resolve(strict=True)` can cause permission errors when users don't have permissions to all intermediate directories in a Django installation path, see:
{{{
Traceback (most recent call last):
  File ""manage.py"", line 21, in <module>
    main()
  File ""manage.py"", line 17, in main
    execute_from_command_line(sys.argv)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/core/management/__init__.py"", line 401, in execute_from_command_line
    utility.execute()
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/core/management/__init__.py"", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/core/management/base.py"", line 328, in run_from_argv
    self.execute(*args, **cmd_options)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/core/management/commands/runserver.py"", line 60, in execute
    super().execute(*args, **options)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/core/management/base.py"", line 369, in execute
    output = self.handle(*args, **options)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/core/management/commands/runserver.py"", line 95, in handle
    self.run(**options)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/core/management/commands/runserver.py"", line 102, in run
    autoreload.run_with_reloader(self.inner_run, **options)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 599, in run_with_reloader
    start_django(reloader, main_func, *args, **kwargs)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 584, in start_django
    reloader.run(django_main_thread)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 299, in run
    self.run_loop()
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 305, in run_loop
    next(ticker)
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 345, in tick
    for filepath, mtime in self.snapshot_files():
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 361, in snapshot_files
    for file in self.watched_files():
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 260, in watched_files
    yield from iter_all_python_module_files()
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 105, in iter_all_python_module_files
    return iter_modules_and_files(modules, frozenset(_error_files))
  File ""/usr/home/XXX/.virtualenvs/go/lib/python3.8/site-packages/django/utils/autoreload.py"", line 141, in iter_modules_and_files
    resolved_path = path.resolve(strict=True).absolute()
  File ""/usr/local/lib/python3.8/pathlib.py"", line 1180, in resolve
    s = self._flavour.resolve(self, strict=strict)
  File ""/usr/local/lib/python3.8/pathlib.py"", line 362, in resolve
    return _resolve(base, str(path)) or sep
  File ""/usr/local/lib/python3.8/pathlib.py"", line 346, in _resolve
    target = accessor.readlink(newpath)
  File ""/usr/local/lib/python3.8/pathlib.py"", line 451, in readlink
    return os.readlink(path)
PermissionError: [Errno 13] Permission denied: '/usr'
}}}

Regression in e28671187903e6aca2428374fdd504fca3032aee (Django 3.0).

Thanks Jakub Szafrański for the [https://code.djangoproject.com/ticket/31912#comment:15 report]."	Bug	closed	Core (Management commands)	3.1	Normal	fixed		Tom Forbes	Ready for checkin	1	0	0	0	0	0
