http invalid chunked encoding error

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi,

Test on BCM94390WCD2 with FreeRTOS+LwIP (SDK-3.1.0-beta1).

We hit http invalid chunked encoding error, this can be reproduced by:

Use snip/pin_webserver app to test it:

1. Add below line to http database of apps/snip/ping_webserver/ping_webserver.c

    { "/apps/ping_webserver/test.css", "text/css",                   WICED_RESOURCE_URL_CONTENT,  .url_content.resource_data  = &resources_apps_DIR_ping_webserver_DIR_test_css, },

2. Copy test test.css to resources/apps/ping_webserver/test.css

3. Add apps/ping_webserver/test.css to ping_webserver.mk

4. Send http request

Attached 3 files to reproduce this issue:

1. the screensoot to show the invalid chunked encoding error on browser

2. the test.css file for download test

3. the curl download log shows "curl: (56) Problem (3) in the Chunked-Encoded data"

0 Likes
11 Replies
Anonymous
Not applicable

I test again with ThreadX-NetX for this issue.

With ThreadX-NetX build, it does not show invalid chunked encoding error.

However, it still does not work because the download is always incomplete.

This can be easily test with browser or curl.

0 Likes
Anonymous
Not applicable

hi,

Just want to highlight that this issue is a major issue for us.

Some css/javascript files cannot be successfully download, so the web UI

cannot properly loaded.

So we are not able to show a working demo for our customer at this moment.

0 Likes

sam.lin,

I'm trying to work on your issue, shall let you know soon.

thnx,

vik86

Sam we tried reproducing your issue. We tried on two different setups and different boards and we were not able to reproduce. Could you verify once more and provide more details on the issue.

thnx

vik86

0 Likes
Anonymous
Not applicable

Hi vik86,

I test this many times tody and found it's hard to reproduce it.

I only see the invalid chunked encoding error once today.

It's a bit strange because on the day I reported this issue I can

100% reproduce it.

I'll try if I can find a better way to reproduce it.

Thanks.

0 Likes
Anonymous
Not applicable

Hi vik86,

I found the most easy way to reproduce is to press F5 on the browser to reload

the page.

I'm using google chrome which has develop tool to show the chunked encoding

error. Press 「Ctrl+Shift+I」on google chrome browser and select "Network" section.

Then press F5 multiple times and you can see the error.

Thanks.

0 Likes
Anonymous
Not applicable

BTW, don't press F5 too quickly.

Otherwise, you may see the request is in "pending" status and then the

request never success. This is probably another bug that need fix.

But for the invalid-chunked-encoding error, just don't press F5 too quickly

in case you hit another bug.

0 Likes
Anonymous
Not applicable

hi vik86,

Just want to know if you can reproduce this issue now?

We have a more complex UI that includes more javascript and css files

so it's easy to hit this issue in our application.

Thanks.

0 Likes
Anonymous
Not applicable

vik86 wrote:

sam.lin,

I'm trying to work on your issue, shall let you know soon.

hi vik86,

My debug code shows the invalid chunked encoding issue happens in below code path.

Can you take a look at this?

In WICED/network/LwIP/ver1.4.0.rc1/src/api/api_msg.c,

        available = tcp_sndbuf(conn->pcb.tcp);

        when available < len, this issue happens.

        // e.g. my debug code shows len=484 conn->current_msg->msg.w.len=1412

        if (dontblock && (len < conn->current_msg->msg.w.len)) {

                /* failed to send all data at once -> nonblocking write not possible */

                err = ERR_MEM;

        }      

        Then it goes to nonblocking write failed path:

        if (dontblock && (err == ERR_MEM)) {

                /* nonblocking write failed */

                write_finished = 1;

                err = ERR_WOULDBLOCK;

                /* let poll_tcp check writable space to mark the pcb

                        writable again */

                conn->flags |= NETCONN_FLAG_CHECK_WRITESPACE;

                /* let select mark this pcb as non-writable. */

                 API_EVENT(conn, NETCONN_EVT_SENDMINUS, len);

        }

thanks.

0 Likes
Anonymous
Not applicable

Dear

  For the this issues, I have following test results in 4390 with SDK3.1.1

  For small application, it works fine.    but big size application code it has problem in ThreadX

  Our application console :

                                       Target 4390            |  Flash  |   RAM   |

           By FreeRTOS :  TOTAL (bytes)                     |       0 |  368846 |  

           By ThreadX    :   TOTAL (bytes)                    |       0 |  387651 |

   -   FreeRTOS works fine for OTA,

   - ThreadX works ( wifi connection and ping is OK )  but web access failed

  - ota_fr application test

   -   FreeRTOS works fine for OTA,

   - ThreadX works fine for OTA,

TKS

0 Likes
Anonymous
Not applicable

Discussion is being locked. If you have any follow-up, please start a new discussion.

0 Likes