Chunked input module problem with http_dav

Hi all -

I’m running the latest tagged version of the chunked input body module
as per Tags · agentzh/chunkin-nginx-module · GitHub (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 M.
London, Oxford, UK
http://www.jpluscplusm.com/contact.html

On Mon, Apr 9, 2012 at 1:00 PM, Jonathan M.
[email protected] wrote:

2012/04/09 20:38:02 [crit] 1485#0: *3 chmod() “/srv/tmp/0000000001”
as the final resting place as the data.
If I don’t use chunked input, then the upload works fine.

Thanks for the report. I’ll look into this when I have some time :slight_smile:

Best regards,
-agentzh