#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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
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