<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=koi8-r">
<META content="MSHTML 6.00.2900.3132" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Добрый день,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Под FreeBSD обнаружил проблему с обрезанием страниц 
больших 32 Кб,</FONT></DIV>
<DIV><FONT face=Arial size=2>под Linux больших 12 КБ, который отдаются в 
chain-ах&nbsp;из памяти </FONT></DIV>
<DIV><FONT face=Arial size=2>(без in_file = 1, т.е. без использования временных 
файлов, через writev).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Расследование привело к условию ниже:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>src/os/unix/ngx_freebsd_sendfile_chain.c:399</FONT></DIV>
<DIV><FONT face=Arial 
size=2>src/os/unix/ngx_linux_sendfile_chain.c:360</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>if (!complete) {<BR>&nbsp;&nbsp; wev-&gt;ready = 
0;<BR>&nbsp;&nbsp; return cl;<BR>}<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>Если закомментировать этот блок/условие, 
то&nbsp;страницы отдаются полностью,</FONT></DIV>
<DIV><FONT face=Arial size=2>но появляется много записей в логах типа 
этой:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>writev() not ready (11: Resource temporarily 
unavailable)<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>Какой смысл несет условие выше, и как можно решить 
эту проблему </FONT></DIV>
<DIV><FONT face=Arial size=2>более прямым способом? Неужели нельзя вернуться и 
продолжить запись?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Насколькоя понял, writev гарантировано успевает 
передать заголовки,</FONT></DIV>
<DIV><FONT face=Arial size=2>затем пытается передать тело, но передает только 
сколько влезет в системный буфер,</FONT></DIV>
<DIV><FONT face=Arial size=2>затем&nbsp;происходит выход по if 
(!complete)&nbsp;,&nbsp;&nbsp;после чего повторных попыток </FONT></DIV>
<DIV><FONT face=Arial size=2>продолжения записи </FONT><FONT face=Arial 
size=2>не происходит.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>И это на всех версиях nginx.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;</DIV></FONT></BODY></HTML>