﻿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
25022	collectstatic create self-referential symlink	Aymeric Augustin	nobody	"This has happened twice on our CI server, but I'm not sure how.

Relevant settings:

{{{
STATICFILES_DIRS = ('/var/lib/jenkins/jobs/project-pr-endtoend/workspace/frontend/dist',)
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
STATIC_ROOT = '/var/lib/jenkins/jobs/project-pr-endtoend/workspace/project/static'
STATIC_URL = '/static/'
}}}

Collectstatic command:

{{{
django-admin collectstatic --noinput --clear --link
}}}

(Possibly run several times in a row, with the same or different static files.)

We ended up with `'/var/lib/jenkins/jobs/project-pr-endtoend/workspace/project/static/img/icon-sd3b7ad043d.png'` which was a symlink to itself.

This prevented gunicorn from starting because we use whitenoise to serve static files, whitenoise scans the entire static directory on startup, and it couldn't `stat` a self-referential symlink.

This is quite surprising because:

- If I clear the directory and re-run collectstatic, I cannot reproduce the issue
- I expect --clear to wipe the directory first
- I don't expect --link to create a self-referential symlink

(This may end up as needsinfo if I don't dig into the details and we can't figure out the bug from the code. But even then it may help someone who stumbles upon the same problem.)"	Bug	closed	contrib.staticfiles	1.7	Normal	needsinfo		emorley@…	Accepted	0	0	0	0	0	0
