]> git.kaiwu.me - nginx.git/commitdiff
Merge of r4920, r4939: ngx_write_chain_to_file() fixes.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 10 Dec 2012 18:04:54 +0000 (18:04 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 10 Dec 2012 18:04:54 +0000 (18:04 +0000)
*) Core: added debug logging of writev() in ngx_write_chain_to_file().

*) Core: fixed ngx_write_chain_to_file() with IOV_MAX reached.

   Catched by dav_chunked.t on Solaris.  In released versions this might
   potentially result in corruption of complex protocol responses if they
   were written to disk and there were more distinct buffers than IOV_MAX
   in a single write.

src/os/unix/ngx_files.c

index d71aec316d49fd96f030f8f338d6553e4e359866..4fdf884fc65c25572f4ddccd344e0399a4e819b9 100644 (file)
@@ -241,8 +241,12 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset,
             return NGX_ERROR;
         }
 
+        ngx_log_debug2(NGX_LOG_DEBUG_CORE, file->log, 0,
+                       "writev: %d, %z", file->fd, n);
+
         file->sys_offset += n;
         file->offset += n;
+        offset += n;
         total += n;
 
     } while (cl);