<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic HTTP server stuck in function httpsrv_read()  when receiving large data in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/HTTP-server-stuck-in-function-httpsrv-read-when-receiving-large/m-p/411551#M13758</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a CW10.6 and MQX4.2 project which runs on K60F120M. I found that when large data(the size is greater than HTTPSRVCFG_RX_BUFFER_SIZE) is uploaded to the HTTP server, sometimes the server is stuck in httpsrv_read() function (in httpsrv_supp.c), the call to httpsrv_recv() returns 0 while (read&amp;lt;len), so the function is stuck forever while waiting for more data. &lt;/P&gt;&lt;P&gt;Here is the code snippet of httpsrv_read:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If there is some space remaining in user buffer try to read from socket */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (read &amp;lt; len)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t received;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; received = httpsrv_recv(session, dst+read, len-read, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((uint32_t)RTCS_ERROR != received)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read += received;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Before digging deeper into the RTCS code, I'd like to know if anybody else had the same problem? And if yes, how to solve it?&lt;/P&gt;&lt;P&gt;Thank you very much for your help,&lt;/P&gt;&lt;P&gt;Julie&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Aug 2015 15:12:13 GMT</pubDate>
    <dc:creator>julie</dc:creator>
    <dc:date>2015-08-04T15:12:13Z</dc:date>
    <item>
      <title>HTTP server stuck in function httpsrv_read()  when receiving large data</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/HTTP-server-stuck-in-function-httpsrv-read-when-receiving-large/m-p/411551#M13758</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a CW10.6 and MQX4.2 project which runs on K60F120M. I found that when large data(the size is greater than HTTPSRVCFG_RX_BUFFER_SIZE) is uploaded to the HTTP server, sometimes the server is stuck in httpsrv_read() function (in httpsrv_supp.c), the call to httpsrv_recv() returns 0 while (read&amp;lt;len), so the function is stuck forever while waiting for more data. &lt;/P&gt;&lt;P&gt;Here is the code snippet of httpsrv_read:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If there is some space remaining in user buffer try to read from socket */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (read &amp;lt; len)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t received;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; received = httpsrv_recv(session, dst+read, len-read, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((uint32_t)RTCS_ERROR != received)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read += received;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Before digging deeper into the RTCS code, I'd like to know if anybody else had the same problem? And if yes, how to solve it?&lt;/P&gt;&lt;P&gt;Thank you very much for your help,&lt;/P&gt;&lt;P&gt;Julie&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Aug 2015 15:12:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/HTTP-server-stuck-in-function-httpsrv-read-when-receiving-large/m-p/411551#M13758</guid>
      <dc:creator>julie</dc:creator>
      <dc:date>2015-08-04T15:12:13Z</dc:date>
    </item>
    <item>
      <title>Re: HTTP server stuck in function httpsrv_read()  when receiving large data</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/HTTP-server-stuck-in-function-httpsrv-read-when-receiving-large/m-p/411552#M13759</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;you might try to increase the OPT_RECEIVE_TIMEOUT session socket option. In case of timeout on the session socket (no incoming data) the recv() function returns with whatever data has been buffered, possibly zero.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTTPSRVCFG_RECEIVE_TIMEOUT compile time macro, in milliseconds.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Aug 2015 05:54:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/HTTP-server-stuck-in-function-httpsrv-read-when-receiving-large/m-p/411552#M13759</guid>
      <dc:creator>Martin_</dc:creator>
      <dc:date>2015-08-11T05:54:46Z</dc:date>
    </item>
    <item>
      <title>Re: HTTP server stuck in function httpsrv_read()  when receiving large data</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/HTTP-server-stuck-in-function-httpsrv-read-when-receiving-large/m-p/411553#M13760</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;or, actually, maybe the code needs to add a check for zero bytes return value, to return to the caller in case of the receive timeout:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;/* If there is some space remaining in user buffer try to read from socket */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (read &amp;lt; len)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t received;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; received = httpsrv_recv(session, dst+read, len-read, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;STRONG&gt;if (received &amp;amp;&amp;amp; ((uint32_t)RTCS_ERROR != received))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read += received;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Aug 2015 06:04:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/HTTP-server-stuck-in-function-httpsrv-read-when-receiving-large/m-p/411553#M13760</guid>
      <dc:creator>Martin_</dc:creator>
      <dc:date>2015-08-11T06:04:32Z</dc:date>
    </item>
  </channel>
</rss>

