#25022: collectstatic create self-referential symlink
-----------------------------------------------+------------------------
               Reporter:  aaugustin            |          Owner:  nobody
                   Type:  Bug                  |         Status:  new
              Component:  contrib.staticfiles  |        Version:  1.7
               Severity:  Normal               |       Keywords:
           Triage Stage:  Unreviewed           |      Has patch:  0
    Needs documentation:  0                    |    Needs tests:  0
Patch needs improvement:  0                    |  Easy pickings:  0
                  UI/UX:  0                    |
-----------------------------------------------+------------------------
 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.)

--
Ticket URL: <https://code.djangoproject.com/ticket/25022>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/052.bcf1318fdb8ee2664b1e25f36b57d4ce%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to