Welcome! Log In Create A New Profile

Advanced

Bug?

All files from this thread

File Name File Size   Posted by Date  
patch.short.write 3.9 KB open | download Igor Sysoev 09/25/2009 Read message
patch.short.write1 4.7 KB open | download Igor Sysoev 09/25/2009 Read message
Alejandro Martínez
September 24, 2009 03:34PM
i keep getting:

2009/09/24 18:21:09 [crit] 11956#0: *50 pwrite() has written only 266240
of 524288, client: 10.100.0.115, server: contentdata.spacash.com,
request: "POST /store.php HTTP/1.1", host: "10.100.0.155"

2009/09/24 18:22:19 [crit] 11956#0: *81 pwrite() has written only 225280
of 524288, client: 10.100.0.115, server: contentdata.spacash.com,
request: "POST /store.php HTTP/1.1", host: "10.100.0.155"

store.php just receives files via POST and then moves them to the final
location via move_uploaded_file()

I tracked the string "pwrite() has written only" within nginx's source
and got to:

src/os/unix/ngx_files.c where there is:

ssize_t
ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
{
ssize_t n;

ngx_log_debug4(NGX_LOG_DEBUG_CORE, file->log, 0,
"write: %d, %p, %uz, %O", file->fd, buf, size,
offset);

#if (NGX_HAVE_PWRITE)

n = pwrite(file->fd, buf, size, offset);

if (n == -1) {
ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "pwrite()
failed");
return NGX_ERROR;
}

if ((size_t) n != size) {
ngx_log_error(NGX_LOG_CRIT, file->log, 0,
"pwrite() has written only %z of %uz", n, size);
return NGX_ERROR;
}

#else

if (file->sys_offset != offset) {
if (lseek(file->fd, offset, SEEK_SET) == -1) {
ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek()
failed");
return NGX_ERROR;
}

file->sys_offset = offset;
}

n = write(file->fd, buf, size);
if (n == -1) {
ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "write()
failed");
return NGX_ERROR;
}

if ((size_t) n != size) {
ngx_log_error(NGX_LOG_CRIT, file->log, 0,
"write() has written only %z of %uz", n, size);
return NGX_ERROR;
}

file->sys_offset += n;

#endif

file->offset += n;

return n;
}



Googling for pwrite, i found out that pwrite just isn't to write all of
its data at once, so one has to put it into a loop.


So is this a bug or did i do something terribly wrong?

Thank you for your time.

Alejandro Martínez Lanfranco
--
Posted via http://www.ruby-forum.com/.
Subject Author Posted

Bug?

Alejandro Martínez September 24, 2009 03:34PM

Re: Bug?

Igor Sysoev September 24, 2009 03:44PM

Re: Bug?

Alejandro Martínez September 24, 2009 04:44PM

Re: Bug?

Alejandro Martínez September 24, 2009 05:04PM

Re: Bug?

Igor Sysoev September 25, 2009 01:44AM

Re: Bug? Attachments

Igor Sysoev September 25, 2009 02:16AM

Re: Bug? Attachments

Igor Sysoev September 25, 2009 04:14AM

Re: Bug?

Alejandro Martínez September 25, 2009 09:10AM

Re: Bug?

Maxim Dounin September 25, 2009 09:38AM

Re: Bug?

Alejandro Martínez September 25, 2009 10:06AM

Re: Bug?

Maxim Dounin September 25, 2009 10:24AM

Re: Bug?

Alejandro Martínez September 25, 2009 10:38AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 227
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready