I played with this and still not sure what is the problem. With small TCP buffers and starting with 2 request it slws down and reads be small chunks. netstat shows Send-Q so it might be TCP stack playing on Linux,
Zoran, can you check this on Solaris.

I put debug in SockRead and see lines like this
[01/Mar/2006:18:20:14][32388.3065797552][-spooler2-] Error: n=1228/4096 avail=924176 max=1000001 [01/Mar/2006:18:20:14][32388.3065797552][-spooler2-] Error: n=1228/4096 avail=925404 max=1000001 [01/Mar/2006:18:20:14][32388.3065797552][-spooler2-] Error: n=103/4096 avail=925507 max=1000001 [01/Mar/2006:18:20:14][32388.3065797552][-spooler2-] Error: n=1536/4096 avail=927043 max=1000001 [01/Mar/2006:18:20:14][32388.3065797552][-spooler2-] Error: n=1536/4096 avail=928579 max=1000001

It could be the client as well, i tried to submit this from separate process with the same result.

Stephen Deasey wrote:
On 2/28/06, Stephen Deasey <[EMAIL PROTECTED]> wrote:
Looks like the maxinput setting which is supposed to limit the max
size of a file upload is not being honoured.  That's potentially
nasty...

With the spooler threads disabled, test http-4.5 just fails.  It
returns 200 OK and the content where as it should return 413 Request
Entity Too Big.

With the spooler threads enabled, the test hangs.  Sometimes...  It
was doing this occasionally, now it does it consistently for me.
Once, it did hang just prior to this test beginning to run.

Something racy going on there...


Modified Files:
       ChangeLog
Log Message:
Fixed error reporting during
request parsing, now server returns 414/400 return codes and honors
maxinput/maxheaders parameters. Test http-4.5 does not hang actually
but with sndbuf/rcvbug set to so small values it takes very logn time to
read the request, by putting Ns_Log in SockRead i was seeing reading by
64/192 bytes but the server was operational.


I don't think that's the case.  Test http-4.4 is almost exactly the
same as http-4.5 except it sends 1000001 bytes instead of 1000003 and
it takes only a second to run.

Experimenting further, if I drop the snd/rcv buffer sizes from 9 to 8,
the test no longer stalls.

Increasing the buffer sizes to 16, 32, 64, 128, 256, 512, 1024 and
2048 the test still stalls.  So this is clearly not an issue of small
buffers taking a long time to fill.  4096 seems to work.

Running top while the server is stalled shows that nsd is not buzzing
the processor.  The server will run another request while the current
one is stalled.

I can also get the stalling to go away by disabling the spooler
threads, even with the odd buffer sizes.

Remember, occasionally this works for me if I run the test suite
enough times.  This suggests that there is a locking or socket timeout
race or, there's more than one bug interacting...


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=k&kid0944&bid$1720&dat1642
_______________________________________________
naviserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/naviserver-devel


Reply via email to