This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Serious flaw in CC3000 Firmware - Client Reset does not close socket on cc3000

Other Parts Discussed in Thread: MSP430F5529, CC3200, CC3100

I have repeatedly brought one of these issues up and I would really like to get an acknowledgement from TI.  The cc3000 is doing 2 things wrong in the TCP stack in the firmware.  These low level packets are beyond control from the API level, so this needs to be fixed in firmware: 

1.  Sometimes, the CC3000 sends a duplicate SYN+ACK  after the client already ACKed the first SYN+ACK.  I have seen this many times and posted about them in the past. 

2.  A RST from the client should ALWAYS cause an immediate socket close and raise an HCI_EVNT_BSD_TCP_CLOSE_WAIT event.  In the example below, that duplicate SYN+ACK from the cc3000 causes the client to immediately RST (Reset) the connection.  The socket is now closed, and yet, the cc3000 continues as if the socket is open!  From the client API, there is no way to see that anything is wrong. 

3. When I close the socket after some 10 seconds of inactivity, I call the socket method (HCI_CMND_CLOSE_SOCKET), but that causes the cc3000 to completely stop responding to all commands at that point.  The interesting bit here is that the cc3000 DOES send out the FIN+ACK to the client to close the socket (see the last packet in Part 2), so I know the close command was properly received by the cc3000 over SPI.  However, since the client already reset this connection, the client never responds and the cc3000 waits forever for the ACK that will never come. 

Part 1 (Port 51422).  CC3000 running an HTTP server on port 80 as 192.168.1.101.  Client is Internet Explorer on 192.168.1.102. 

Part 2:

I would recommend a few changes:

1. When you receive an RST from the client, close the socket on the cc3000 and raise this event: HCI_EVNT_BSD_TCP_CLOSE_WAIT

2. You must make the HCI_CMND_CLOSE_SOCKET a non-blocking call.  There are situations where the client may never respond, rendering the cc3000 completely dead until it is power cycled. 

 

If these issues are not fixed, I don't see any way that the cc3000 can EVER be used as a reliable server.  I don't see any way to detect or workaround this.  I have more captures as well showing other times this has happened.  I could set the socket timeout option, but that won't solve the problem, as the cc3000 will still hang waiting for the client to ACK the FIN+ACK sent by the cc3000 when the socket close is attempted. 

Thanks,

-Valkyrie-MT

P.S. For reference, I have also attached my server logs of the incident. 

Handling Response for OpCode: 1005, Payload: 040510110002000000030000000200DEC86601A8C0
Accept Response 040510110002000000030000000200DEC86601A8C0
Socket 2 is OK, Accepted from IP 192.168.1.102:51422
06/01/2011 00:04:31 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:31 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 1009, Payload: 040910050000000000
Handling Response for OpCode: 1009, Payload: 040910050000000000
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
06/01/2011 00:04:31 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:31 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 1009, Payload: 040910050000000000
Handling Response for OpCode: 1009, Payload: 040910050000000000
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:31 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:31 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:31 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:31 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
06/01/2011 00:04:31 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:31 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:32 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:32 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:32 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
*** Beat ***
Queue: 1, Unhandled Responses: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
06/01/2011 00:04:32 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:32 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000801000000000000
Adding special Opcode: 9013
06/01/2011 00:04:32 New Response Received (1885) - 0285182001030000000C00000008010000000000 ...
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
GotData - 0285182001030000000C00000008010000000000000000000000000000474554202F20485454502F312E310D0A4163636570743A20746578742F68746D6C2C206170706C69636174696F6E2F7868746D6C2B786D6C2C202A2F2A0D0A4163636570742D4C616E67756167653A20656E2D55532C656E3B713D302E350D0A557365722D4167656E743A204D6F7A696C6C612F352E30202857696E646F7773204E5420362E333B20574F5736343B2054726964656E742F372E303B2072763A31312E3029206C696B65204765636B6F0D0A4163636570742D456E636F64696E673A20677A69702C206465666C6174650D0A486F73743A206363333030302E6C6F63616C0D0A444E543A20310D0A436F6E6E656374696F6E3A204B6565702D416C6976650D0A0D0A
06/01/2011 00:04:32 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:32 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1004, Payload: 0404100D00030000000801000000000000
RECV Command Response on socket 3.  Bytes pending: 264, Flags: 0
06/01/2011 00:04:32 Sending (9013) - 01001100000104100C03000000000200000000000000
06/01/2011 00:04:32 New Response Received (1004) - 0404100D00030000000000000000000000
Adding special Opcode: 9013
Handling Response for OpCode: 1885, Payload: 0285182001030000000C00000008010000000000000000000000000000474554202F20485454502F312E310D0A4163636570743A20746578742F68746D6C2C206170706C69636174696F6E2F7868746D6C2B786D6C2C202A2F2A0D0A4163636570742D4C616E67756167653A20656E2D55532C656E3B713D302E350D0A557365722D4167656E743A204D6F7A696C6C612F352E30202857696E646F7773204E5420362E333B20574F5736343B2054726964656E742F372E303B2072763A31312E3029206C696B65204765636B6F0D0A4163636570742D456E636F64696E673A20677A69702C206465666C6174650D0A486F73743A206363333030302E6C6F63616C0D0A444E543A20310D0A436F6E6E656374696F6E3A204B6565702D416C6976650D0A0D0A
Data Received -- Socket Message Received
onDataReceived -- 3
New Message Received: GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,en;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: cc3000.local
DNT: 1
Connection: Keep-Alive


Sending 84 bytes of data on socket 3

Sending 276 bytes of data on socket 3
06/01/2011 00:04:33 Sending (1003) - 01006900000281106400030000000C0000005400000000000000485454502F312E3120323030204F4B0D0A436F6E74656E742D547970653A20746578742F68746D6C0D0A436F6E74656E742D4C656E6774683A203237360D0A436F6E6E656374696F6E3A20636C6F73650D0A0D0A
06/01/2011 00:04:33 New Response Received (1003) - 04031009000300000054000000

06/01/2011 00:04:33 Sending (1003) - 01012900000281102401030000000C00000014010000000000003C68746D6C3E3C686561643E3C6D65746120687474702D65717569763D22726566726573682220636F6E74656E743D223130223E3C2F686561643E3C626F64793E3C666F6E7420666163653D2276657264616E61223E3C68313E54686520434333303030204D616E61676564204472697665723C2F68313E3C703E666F72202E4E4554204D6963726F4672616D65776F726B3C2F703E3C703E54686973206973206A7573742074686520626567696E6E696E67203A293C2F703E3C703E3C6120687265663D22687474703A2F2F6363333030302E636F6465706C65782E636F6D223E566973697420757320617420436F6465706C6578213C2F613E3C2F703E3C2F666F6E743E3C2F626F64793E3C2F68746D6C3E
06/01/2011 00:04:33 New Response Received (1003) - 04031009000300000014010000
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1004, Payload: 0404100D00030000000000000000000000
RECV Command Response on socket 3.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 1003, Payload: 04031009000300000054000000
Sent 84 bytes on Socket 3
Handling Response for OpCode: 1003, Payload: 04031009000300000014010000
Sent 276 bytes on Socket 3
06/01/2011 00:04:33 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:33 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:33 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:33 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:33 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:33 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:33 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:33 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:34 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:34 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:34 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:34 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:34 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:34 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:34 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:34 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
*** Beat ***
Queue: 0, Unhandled Responses: 0
06/01/2011 00:04:34 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:34 New Response Received (100D) - 040D100D00010000006400000000000000
Adding special Opcode: 9021
06/01/2011 00:04:35 New Response Received (1884) - 0284187C00010000000C00000064000000000000 ...
GotData - 0284187C00010000000C000000640000000000000002000089C0A80159C3BE011000010000000000002046484641454245454341434143414341434143414341434143414341434141410000200001C3BE011000010000000000002046484641454245454341434143414341434143414341434143414341434141410000200001
Handling Response for OpCode: 100D, Payload: 040D100D00010000006400000000000000
RECV Command Response on socket 1.  Bytes pending: 100, Flags: 0
06/01/2011 00:04:35 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:35 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 1884, Payload: 0284187C00010000000C000000640000000000000002000089C0A80159C3BE011000010000000000002046484641454245454341434143414341434143414341434143414341434141410000200001C3BE011000010000000000002046484641454245454341434143414341434143414341434143414341434141410000200001
Data Received -- Socket Message Received
NetBIOS Message Detected from IP: 192.168.1.89
Netbios name query for: WPAD           
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:35 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:35 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:35 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:35 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:35 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:35 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:35 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:35 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:36 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:36 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:36 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:36 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:36 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:36 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:36 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:36 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
*** Beat ***
Queue: 0, Unhandled Responses: 0
06/01/2011 00:04:37 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:37 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:37 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:37 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:37 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:37 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:37 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:37 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:37 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:37 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:38 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:38 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:38 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:38 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:38 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:38 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:38 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:38 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
*** Beat ***
Queue: 0, Unhandled Responses: 1
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:38 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:38 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:39 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:39 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:39 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:39 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:39 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:39 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:39 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:39 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:40 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:40 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:40 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:40 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:40 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:40 New Response Received (8200) - 0400820100
06/01/2011 00:04:40 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:40 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 8200, Payload: 0400820100
Keep Alive
06/01/2011 00:04:40 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:40 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
*** Beat ***
Queue: 0, Unhandled Responses: 0
06/01/2011 00:04:40 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:40 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
06/01/2011 00:04:40 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:40 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:41 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:41 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:41 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:41 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:41 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:41 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:41 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:41 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:42 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:42 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:42 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:42 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:42 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:42 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:42 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:42 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
*** Beat ***
Queue: 0, Unhandled Responses: 0
06/01/2011 00:04:43 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:43 New Response Received (100D) - 040D100D00010000000000000000000000
Adding special Opcode: 9021
Handling Response for OpCode: 100D, Payload: 040D100D00010000000000000000000000
RECV Command Response on socket 1.  Bytes pending: 0, Flags: 0
06/01/2011 00:04:43 Sending (9020) - 0100110000010D100C00000000000200000000000000
06/01/2011 00:04:43 New Response Received (100D) - 040D100D00000000000000000000000000
Adding special Opcode: 9020
Handling Response for OpCode: 100D, Payload: 040D100D00000000000000000000000000
RECV Command Response on socket 0.  Bytes pending: 0, Flags: 0
Last Activity on socket 3 was 10 seconds ago.
Sending Command to Close Socket 3
06/01/2011 00:04:43 Sending (100B) - 0100090000010B10040300000000
06/01/2011 00:04:43 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:43 Sending (9020) - 0100110000010D100C00000000000200000000000000
*** Beat ***
Queue: 0, Unhandled Responses: 0
06/01/2011 00:04:45 Sending (9021) - 0100110000010D100C01000000000200000000000000
06/01/2011 00:04:45 Sending (9020) - 0100110000010D100C00000000000200000000000000
Socket 3 did not close.
Childsocket is null? False, ChildSocket is closed? True
06/01/2011 00:04:46 - Starting Accept for socket 2
06/01/2011 00:04:46 Sending (9002) - 0100090000010510040200000000
*** Beat ***
Queue: 0, Unhandled Responses: 0
Watchdog Check
06/01/2011 00:04:46 Sending (400B) - 0100050000010B400002
Device appears dead, restarting...
Accept Response was null
Shutting down CC3000...
Starting up CC3000...
06/01/2011 00:04:55 Sending - Simple Link Start
06/01/2011 00:04:55 Sending (4000) - 01000500000100400100
06/01/2011 00:04:56 New Response Received (4000) - 0400400100

  • I'm fighting this issue for last two weeks. Had another one but fixed it, still this one remains. I can confirm all that Valkyrie-MT is saying. It seems that the module does not inform the user that connection is closed after it receives RST packet. I don't know if it relates to all RST packets or only some (in some circumstances).

    In my case, the server "sends" 5 packets - all send() calls are successful. Meanwhile the client sends FIN+ACK, then opens another connection with SYN. WiFi module tries to respond to the old connection (as it didn't see FIN), then the client sends RST packet because the connection is closed on its side. After the last send(), module did not raise HCI_EVNT_BSD_TCP_CLOSE_WAIT, neither HCI_EVENT_CC3000_CAN_SHUT_DOWN event. Even if waiting for shutdown is skipped, the closesocket() freezes at SimpleLinkWaitEvent(). Also, any other command (such as accept or select) blocks indefinitely. This is repeatable.

    In the end, we're wasting our time debugging the module that IMHO should work out of the box.

    Valkyrie sent another post exactly a month ago. Still no single answer from TI employees. Could you at least reply that you're investigating the issue? Or that it's not an issue/whatever, because we're waiting here for your answer, trying to develop something based on your module.

  • Hi.

    I'm facing the same problem it seems.
    TI please fix this or I'll have thousands of devices hanging and a whole bunch of pissed of customers.

    Regards

    Jimmy

  • I have to concur with the posters above. With the information in this post I was able to (after many many hours of debugging) determine that I suffer from this problem as well. As it stands right now I can't see how I can implement a properly behaving server. This need to be worked out as soon as possible.

    /Pontus

  • Hi Guys,

    After seeing the captures, I do anknowledge this as another potential issue. We appreciate the feedback, and I'll see if I can duplicate. I suppose all of you are using patch v1.11.1...can you confirm? Some things were changed regarding SYN/ACK in this latest patch, and I wonder if something may have broke from 1.10.

    Regards,

    Aaron

  • Hi Aaron,

    I am using patch v1.11.1. 

  • Hi,

    Yes, I'm using v1.11.1 patch (service pack v1.24).

  • I am also using v1.11.1.

    /Pontus

  • Hi Guys,

    I've tried reproducing this using an HTTP server on CC3000 + MSP430F5529, and connecting using IE v8, but have not been able to reproduce after refreshing (entire connection cycle) many times. Can I get some more details about your setups?
    Things like:
    AP security used when problem is seen.
    Is problem still visible w/out security?
    How many connection cycles does it take to reproduce typically?
    Time between connection cycles.
    Is problem affected by varying signal levels?
    Browser used?

    Regards,

    Aaron

  • Security: WPA2

    Still visible w/out security: I always use WPA2, but will try to reproduce without security

    Time between connection cycles: 10 seconds

    Connection Cycles: it's quite random, sometimes 25, sometimes a lot more like 8000

    Signal Level: I am about 8 feet from the router and signal is strong

    Browser: IE11

    I currently run an http server from the cc3000 and have it respond to all GET requests with a web page.  The web page is a simple string:

    var body = "<html><head><meta http-equiv=\"refresh\" content=\"10\"></head><body><font face=\"verdana\"><h1>The CC3000 Managed Driver</h1><p>for .NET MicroFramework</p><p>This is just the beginning :)</p><p><a href=\"http://cc3000.codeplex.com\">Visit us at Codeplex!</a></p></font></body></html>";

     

    I will typically run my HTTP server and leave the browser open to this page, which contains an auto refresh every 10 seconds.  I leave this running for as long as possible and review the logs to determine what caused the failure.  The goal for me is to get to the point that it runs indefinitely.  If it runs for 3 weeks without dying, I will call that a success.  So far I have not gotten much past 2 days.  When it fails, I look at Wireshark and the logs to see what happened, and this reset issue is a common cause of failure for me. 

    Aaron, can you add the refresh option with a 10 second interval to the web page you serve?  Then leave the server to serve web pages continuously, overnight.  It should still be refreshing the next day.

     

    -Valkyrie-MT

  • How I'm reproducing it:

    1. Use Windows XP
    2. Launch Firefox 25
    3. Type module server address
    4. in my case, the index page is loaded, I can refresh it very fast (using F5) without hanging it up
    5. now press F5 and keep it pressed for few seconds
    6. after a sec or two, SPI communication should freeze

    Module is using fixed SSID and WPA2 key. At the moment, I can't check if the problem remains without WPA2.

  • Hi Aaron,

    Have you been able to reproduce this bug?

    EDIT: Here's simple C# code to close connection with RST flag:

    System.Net.Sockets.TcpClient tcp = new System.Net.Sockets.TcpClient(
        "192.168.0.50" /*cc3000 IP*/, 80 /*cc3000 port*/);
    System.Threading.Thread.Sleep(1000);
    tcp.Client.LingerState = new System.Net.Sockets.LingerOption(true, 0);
    tcp.Client.Close();
    
  • I am running the cc3000 with wireshark almost around the clock.  Every time is fails, I look at the logs and wireshark to see what happened.  I think every single failure is ultimately because of the blocking socket close. 

    Here is another example of the blocking socket close:

    The cc3000 sends the FIN/ACK to close the socket.  But, while it is waiting for the client to ACK, it does not respond to any SPI commands.  The cc3000 must never block here.  You can never guarantee that you will get a response.  I am just re-iterating change suggestion #2 from my first post. 

    Also, I would like to make one more suggestion to TI.  We really could use a TCP/IP stack Reset command.  The command would just reset all the sockets to an initialized state, just like if it was power cycled.  However, it maintains the wifi connection so it is quick, the assigned IP is preserved, and the client may never even notice.  As it is now, the only way to reset is to toggle the PWR_EN pin and this forces a time consuming wifi reconnect which could mean the IP changes and clients have to change address.  It's a very drastic thing to have to do, but when the cc3000 stops responding, I have no alternative.  We need a better alternative here.  The cc3000 does not need to be perfect if there is a way to reset the sockets without reconnecting.  Ideally, I'd love to be able to reset individual socket IDs, but I'm not picky. 

    Thanks.

  • Hi Valkyrie,

    What technique are you using to auto refresh in IE11?

    Thanks,

    Aaron

  • I have inserted a meta refresh tag into the head section of the html file.  Once you serve a file with that tag to IE (or other browsers), it will automatically refresh the file. 

    Here is an example:

    The content specifies the number of seconds between refreshes.  To stop the refreshing, just click the web browser's stop button. 

    -Valkyrie-MT

  • I was also able to hang the cc3000 by setting up my http server on the cc3000 and requesting the html page on IE.  Then, on IE, I rapidly click the "refresh", then click the red close "X" button as fast as I can (about every 300ms) .  After about 10 to 30 seconds of that, the cc3000 will usually stop responding.  Every time you click the close "X" button on a page that is not loaded, IE will send a RST (Reset) packet.  I don't like to mention this test because with all the stopping and starting going on, it is very difficult to interpret what actually triggered the problem. 

  • Hi Valkyrie,

    We are working on this issue. We do see the problems sometime. I will update you when we have some progress.

    Thanks & Regards,

    Raghavendra

  • Hi Raghavendra,

    That's great to hear.  I appreciate the update.  Please let me know if there is anything I can do to help.  I am happy to test firmware builds as well. 

    Thanks,

    Valkyrie-MT

  • Hi Valkyrie,

    When testing this with above steps, have you come across a series of sequence where CC3000 sends FIN+ACK -- receives ACK, and it looks as if CC3000 has stopped responding, but it recovers after that?

    Thanks & Regards,

    Raghavendra

  • Hi everyone.

    Anything new on this?

    Kind regards

    Jimmy

  • I think I have the same problem but I didn't whiresharked it. But the symptoms are the same and the cause is very similar. If I hold F5(refresh) in Firefox my socket gets unresponsive. But I can still send mDNS packets. And I use the same solution: power reset.

    My issue is http://e2e.ti.com/support/low_power_rf/f/851/t/300998.aspx

    I hope this will be corrected in a new Firmware or this CC3000 would be a very bad decision for any final product.

  • Hi Bostjan,

    We are looking into this issue. The issue mentioned in the link could also be potentially at around the close socket before 'accept'.

    With respect to this issue, is everyone failing to receive the CLOSE_WAIT event when the RST is received?

    Most of the times during the test, I did receive RST,ACK, for which the response was fine. And also, I did receive RST, but the system was stable. The RST received was not as a result of duplicate SYN,ACK through.

    Is it always the RST followed by duplicate SYN,ACK causing this issue?

    Thanks & Regards,

    Raghavendra

  • I cannot confirm that, because I didn't test it like this. I don't know about TCP protocol in details. I just concluded it may be the same problem.


    Regards

    Bostjan

  • Hi Valkyrie-MT,

    Some update, we did try the reproduction steps for the issue and in some cases we did receive and send the expected packets, but even on reception of  RST from the remote device the system did not show the same symptoms.

    But the only exception was there was no  duplicate SYN,ACK. This was something we could not recreate.

    Can you please provide us the internal logs from the CC3000 as mentioned in the below link? http://processors.wiki.ti.com/index.php/CC3000_Logger

    Thanks & Regards,
    Raghavendra

  • Hi all,

    I have experienced the same problems with the CC3000.
    The application I made is a dynamic webpage which communicates every (about) 600ms with HTTP POST over JavaScript.

    I am using asynchronous communication with callbacks on JavaScript and I tried to resolve the problem by setting timeouts there and by stopping timers on "onPageHide" events and everything, but without any success.
    The webserver is now really unreliable, it hangs every few page switches (it will not continue, only after a hard reset of the MSP430 board) and I am seriously considering using alternative solutions for my embedded webpage.

  • We are looking into this issue and tracking it. We will keep you posted as soon as we have  resolution.

  • For your record we are also very keen on the resolution of this issue as we are running a server application.

    Anthony Gilley
    Senior Product Manager
    Heliospectra

  • Hi Deepa,

    Please have a look BUG in 1.11.1 firmware - closesocket takes 3.6 Seconds

    http://e2e.ti.com/support/low_power_rf/f/851/t/304212.aspx

    and issue a response.

    Thank you!

  • Hello, I am seeing the same issue described in this thread. After many days fighting the CC3000, I would like to know whether TI is willing to solve this issue (and the many other bugs in v1.11) or not.

    Thank you,

    Diego.

  • I'm running into this blocking issue as well.

    TI, can you please comment about the state of the fix? Will you still be provided updates to the CC3000 or is all development effort going towards the CC3100/CC3200?


    Any information would be very appreciated.