Chunked input module problem with http_dav

Jonathan Matthews contact at jpluscplusm.com
Mon Apr 9 20:00:05 UTC 2012


Hi all -

I'm running the latest tagged version of the chunked input body module
as per https://github.com/agentzh/chunkin-nginx-module/tags (0.23rc2)
and nginx 1.0.14 with the http_dav module. I'm seeing some failures
which are, to my eye, stopping chunkin work at /all/ in this
combination.

I'm using http_dav to provide an some upload space. After an upload
completes (I started at 400MB, and still see the following problem
with 4MB uploads), I get the following in the debug/error logs:

  2012/04/09 20:38:02 [crit] 1485#0: *3 chmod() "/srv/tmp/0000000001"
failed (2: No such file or directory), client: 10.0.10.183, server:
upload.server, request: "PUT /external/testing123 HTTP/1.1", host:
"upload.server:81"
  2012/04/09 20:38:02 [crit] 1485#0: *3 unlink() "/srv/tmp/0000000001"
failed (2: No such file or directory), client: 10.0.10.183, server:
upload.server, request: "PUT /external/testing123 HTTP/1.1", host:
"upload.server:81"

Then the client receives a 500.
"/srv/tmp" (the client body temp location) *is* on the same partition
as the final resting place as the data.
If I *don't* use chunked input, then the upload works fine.

Here's the site config:
---------------------------------------------------------------------
server {
  listen *:81;
  server_name upload.server;
  chunkin on;
  error_page 411 = @my_411_error;
  location @my_411_error {
      chunkin_resume;
  }
  location / {
    root /srv/data/;
    client_body_temp_path /srv/tmp/
    client_max_body_size 500m;
    dav_methods  PUT DELETE MKCOL COPY MOVE;
    create_full_put_path   off;
    dav_access             group:rw  all:r;
  }
}

... and here's the nginx-V output:

nginx version: nginx/1.0.14
built by gcc 4.4.5 (Debian 4.4.5-8)
configure arguments: --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-log-path=/var/log/nginx/access.log
--http-proxy-temp-path=/var/lib/nginx/proxy
--lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid
--with-http_dav_module --with-http_realip_module
--with-http_stub_status_module --with-http_sub_module
--add-module=/root/src/nginx-modules/agentzh-chunkin-nginx-module-ddc0dd5
--prefix=/usr

Any ideas what's causing this and how I can fix it? Or is chunkin just
not supposed to be run in this way with http_dav?

Cheers,
Jonathan
-- 
Jonathan Matthews
London, Oxford, UK
http://www.jpluscplusm.com/contact.html



More information about the nginx mailing list