Opened 5 years ago

Closed 5 years ago

Last modified 3 years ago

#750 closed defect (wontfix)

nginx refuses to start when /var/lib/nginx (client_body_temp_path) is a symlink to not yet existing directory

Reported by: mstplbrg@… Owned by:
Priority: minor Milestone:
Component: nginx-core Version: 1.6.x
Keywords: Cc:
uname -a: Linux bc6581cf2b6a 3.18.9-200.fc21.x86_64 #1 SMP Mon Mar 9 15:10:50 UTC 2015 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.6.2 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/ --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-auth-pam --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-dav-ext-module --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-echo --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upstream-fair --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module


Steps to reproduce:

  1. apt-get install nginx
  2. systemctl stop nginx
  3. rm -rf /var/lib/nginx
  4. ln -sf /tmp/nginx /var/lib/nginx
  5. systemctl restart nginx

nginx exits with:

2015/04/18 19:00:47 [emerg] 48#0: mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)

I think this is because somewhere in the code, you’re not using ngx_create_full_path(). I tried finding the place, but unfortunately it’s not very clear to me after a couple of minutes of looking, so I figured I’d rather create this ticket than try to fix it myself :).

Change History (2)

comment:1 Changed 5 years ago by mdounin

  • Resolution set to wontfix
  • Status changed from new to closed

It doesn't try to create full path intentionally, as nginx doesn't know desired access rights on intermediate directories. Additionally, such behaviour limits possible damage on typos.

comment:2 Changed 3 years ago by mdounin

See also #1245.

Note: See TracTickets for help on using tickets.