graphite-project / graphite-web

A highly scalable real-time graphing system
http://graphite.readthedocs.org/
Apache License 2.0
5.87k stars 1.26k forks source link

[BUG]collectstatic creates endless symlinks when ran in virtualenv #2825

Closed itinneed2022 closed 7 months ago

itinneed2022 commented 7 months ago

Describe the bug Too many levels of symbolic links:

Traceback (most recent call last):
  File "/app/graphite/bin/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/app/graphite/lib64/python3.9/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/app/graphite/lib64/python3.9/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/app/graphite/lib64/python3.9/site-packages/django/core/management/base.py", line 328, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/app/graphite/lib64/python3.9/site-packages/django/core/management/base.py", line 369, in execute
    output = self.handle(*args, **options)
  File "/app/graphite/lib64/python3.9/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 187, in handle
    collected = self.collect()
  File "/app/graphite/lib64/python3.9/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 104, in collect
    for path, storage in finder.list(self.ignore_patterns):
  File "/app/graphite/lib64/python3.9/site-packages/django/contrib/staticfiles/finders.py", line 130, in list
    for path in utils.get_files(storage, ignore_patterns):
  File "/app/graphite/lib64/python3.9/site-packages/django/contrib/staticfiles/utils.py", line 39, in get_files
    yield from get_files(storage, ignore_patterns, dir)
  File "/app/graphite/lib64/python3.9/site-packages/django/contrib/staticfiles/utils.py", line 39, in get_files
    yield from get_files(storage, ignore_patterns, dir)
  File "/app/graphite/lib64/python3.9/site-packages/django/contrib/staticfiles/utils.py", line 39, in get_files
    yield from get_files(storage, ignore_patterns, dir)
  [Previous line repeated 16 more times]
  File "/app/graphite/lib64/python3.9/site-packages/django/contrib/staticfiles/utils.py", line 23, in get_files
    directories, files = storage.listdir(location)
  File "/app/graphite/lib64/python3.9/site-packages/django/core/files/storage.py", line 318, in listdir
    if entry.is_dir():
OSError: [Errno 40] Too many levels of symbolic links: '/app/graphite/lib64/python3.9/site-packages/content/content/content/content/content/content/content/content/content/content/content/content/content/content/content/content/content/content/content/content/content'

To Reproduce I created a graphite setup in a python3.9 virtualenv and running: PYTHONPATH=/app/graphite/webapp django-admin.py collectstatic --noinput --settings=graphite.settings

Expected behavior A /static directory is created at /app/graphite/static

Environment (please complete the following information):

Additional context Add any other context about the problem here.

itinneed2022 commented 7 months ago

This was me. I was trying to fix the /app/graphite/webapp/content directory being in the wrong place and my symlink was in the wrong place.