I'm experiencing strange behavior of http server from NDK 1.94.1.
My program is using pages that are dependent from about 20 - 30 files (stored in EFS, some graphic files up to 50 kB, some ajax libraries up to 100 kB, some css) and few cgi subpages. Full file set has about 1.5 MB.
I often see that few random files are not loaded into browser - that can make entire page look strange and make it useless. When I captured transsion with ethereal it looks like server is closing connections before sending anything when browser is establishing connection. Also quite often "OOM" errors were showing at console (console is at 768kbps serial port and is not slowing application significantly when some text is printed).
Problem happens more or less often depending of browser I use and ethernet connection (switch/hub).
This glitch looks random, but I think it happens more often (more files are not loaded) when I'm using sockets in other tasks - just calling fdSelect with list of 6..30 socket handles, changing size of socket list supplied to fdSelect makes difference. It doesn't look directly related to CPU load - running other task not using NDK that consumes 50% CPU didn't change anything.
Problem disappeared when I changed browser settings to limit simultaneous connections to one per server at a time, but I don't think this is acceptable solution as these settings are usally more or less hidden from users. Default settings for FF 3.0 is 15 connections per server, but problem still exists when I limit connections to 2 or 3 - I had to bring it down to 1.
Setting MaxCon in server configuration to other values than default didn't helped much, but I get rid of "OOM" messages when I set this to 1.
Have you any other suggestions?
On a side note when I try to load more than 2000kB (plus or minus 10kB, strange number, huh?) to EFS, http server is not responding - including requests for cgi pages. I can't find any info about EFS and http server limitations.