FreeRTOS 8.2.3 FreeTCPIP: webserver packet corruption with concurrent accesses

sbrauss wrote on Tuesday, June 28, 2016:

Hi!

I have a Renesas RX62n controller running FreeRTOS 8.2.3. I use FreeTCPIP/httpd to run a webserver on it. When I produce heavy/concurrent load, I from time to time see that the packets get corrupted (I for example sometines see corrupted pictures when I access the webserver with Internet Explorer). I can also reproduce this problem with running two instances of curl in parallel on my Linux machine, that repeatedly access different files on my target.
I would like to trace it, but first wanted to ask, if someone knows about such a problem?

Thanks & best regards,
Stephan

rtel wrote on Tuesday, June 28, 2016:

This is not something I have seen myself.

What are the files hosted on (RAM disk? SD card?)? Which file system
are you using - and is it thread safe?

sbrauss wrote on Tuesday, June 28, 2016:

Hi!

It is the code from folders Demo/Common/ethernet/FreeTCPIP/apps/httpd and RX600_RX62N-RDK_GNURX/RTOSDemo/webserver, so the files are in httpd-fsdata.c.

Thanks,
Stephan

rtel wrote on Tuesday, June 28, 2016:

Ah right - my mistake, I thought you were using the FreeRTOS+TCP stack
(http://www.freertos.org/tcp).

sbrauss wrote on Tuesday, June 28, 2016:

I just had the idea to search my original RENESAS YRDKRX62N board and give it a try with the original demo code in FreeRTOS. I also can trigger the problem with this code. I run curl twice repeatedly, both loading file logo.jpg, and also accessing the web browser with Internet Explorer. After a while, I get corrupt files. The file lenght is correct, but the contents is bad:

COUNTER=0
while true;do
curl 192.168.200.169/logo.jpg > logo.jpg 2>log3.txt
DIFF=diff logo.jpg logo_orig.jpg
if test -n “$DIFF”; then
echo -n ERROR
echo ${COUNTER}
exit 1
fi
((COUNTER=${COUNTER}+1))
echo ${COUNTER}
done