Issue with multiple HTTPS(TLS) sockets to the same server

Board: nrf7002

nrfConnect SDK 2.4.0 or 2.4.99

IDE: VS code

I’m working on implementing SignalR communication protocol, It uses SSE(Server-Sent Events) communication, so once connected, one socket needs to remain open to receive new data, and we also need to send other messages over an additional socket.

I’m getting a fault when using a second socket, I set it up in the same way as I made the first one. I am modifying the solution found https://devzone.nordicsemi.com/f/nordic-q-a/100826/nrf7002dk-and-tls-sockets--7100-error/433368 to do this. It always faults weather the first socket gets used or not.

Here is the code to create the sockets (changes nslookup to google from my domain):

int sock;
int sock2;
int err;
struct sockaddr_in *sa;
struct addrinfo *rp;

struct sockaddr_in *sa2;
struct addrinfo *rp2;

nslookup("google.com", &rp);
print_addrinfo_results(&rp);

nslookup("google.com", &rp2);
print_addrinfo_results(&rp2);

printk("Connecting to HTTP Server:\n");

// Load in the TLS cert for HTTPS
tls_credential_add(CA_CERTIFICATE_TAG, TLS_CREDENTIAL_CA_CERTIFICATE,
ca_certificate, sizeof(ca_certificate));


// Create Socket
sock = socket(rp->ai_family, rp->ai_socktype, IPPROTO_TLS_1_2); // IPPROTO_TCP //IPPROTO_TLS_1_2
if (sock < 0)
{
printk("Error creating socket\n");
return (-1);
}
// TLS settings
sec_tag_t sec_tag_opt[] = {
CA_CERTIFICATE_TAG,
};
err = setsockopt(sock, SOL_TLS, TLS_SEC_TAG_LIST,
sec_tag_opt, sizeof(sec_tag_opt));
if (err < 0)
{
LOG_ERR("Failed to set TLS security TAG list. Err: %d", errno);
(void)close(sock);
return -errno;
}

err = setsockopt(sock, SOL_TLS, TLS_HOSTNAME,
HTTP_HOST, sizeof(HTTP_HOST));
if (err < 0)
{
LOG_ERR("Failed to set TLS_HOSTNAME option. Err: %d", errno);
(void)close(sock);
return -errno;
}

// Iterate through until we get a successful connection
for (; rp != NULL; rp = rp->ai_next)
{
if (rp->ai_addr->sa_family == AF_INET)
{
// IPv4 Address
sa = (struct sockaddr_in *)rp->ai_addr;
sa->sin_port = htons(443);// this should be 443 (HTTPS port number)
connect(sock, (struct sockaddr *)sa, sizeof(struct sockaddr_in));
if (sock > 0)
break;
}
}

// Create Socket 2
sock2 = socket(rp2->ai_family, rp2->ai_socktype, IPPROTO_TLS_1_2); // IPPROTO_TCP //IPPROTO_TLS_1_2
if (sock2 < 0)
{
printk("Error creating socket\n");
return (-1);
}
sec_tag_t sec_tag_opt2[] = {
CA_CERTIFICATE_TAG,
};
err = setsockopt(sock2, SOL_TLS, TLS_SEC_TAG_LIST,
sec_tag_opt2, sizeof(sec_tag_opt2));
if (err < 0)
{
LOG_ERR("Failed to set TLS security TAG list. Err: %d", errno);
(void)close(sock2);
return -errno;
}

err = setsockopt(sock2, SOL_TLS, TLS_HOSTNAME,
HTTP_HOST, sizeof(HTTP_HOST));
if (err < 0)
{
LOG_ERR("Failed to set TLS_HOSTNAME option. Err: %d", errno);
(void)close(sock2);
return -errno;
}

// Iterate through until we get a successful connection
for (; rp2 != NULL; rp2 = rp2->ai_next)
{
if (rp2->ai_addr->sa_family == AF_INET)
{
// IPv4 Address
sa2 = (struct sockaddr_in *)rp2->ai_addr;
sa2->sin_port = htons(443);// this should be 443 (HTTPS port number)
connect(sock2, (struct sockaddr *)sa2, sizeof(struct sockaddr_in));
if (sock2 > 0)
break;
}
}

Here is the error log:

<err> os: ***** MPU FAULT *****

[00:00:35.620,819] <err> os: Data Access Violation

[00:00:35.620,819] <err> os: MMFAR Address: 0x0

[00:00:35.620,819] <err> os: r0/a1: 0x00000000 r1/a2: 0x00000000 r2/a3: 0x00000000

[00:00:35.620,849] <err> os: r3/a4: 0x00000000 r12/ip: 0x00000413 r14/lr: 0x00004140

[00:00:35.620,849] <err> os: xpsr: 0x29000000

[00:00:35.620,880] <err> os: Faulting instruction address (r15/pc): 0x0004e620

[00:00:35.620,910] <err> os: >>> ZEPHYR FATAL ERROR 19: Unknown error on CPU 0

[00:00:35.620,941] <err> os: Current thread: 0x200049c8 (main)

......

[00:00:37.542,816] <err> fatal_error: Resetting system

Thanks for your help

  • Due to the summer vacation period we are currently understaffed, so delayed replies must be expected. I am sorry about any inconvenience this might cause.

    I wonder if your initial if (sock < 0) will always return an error as it's never less than 0. Can you try changing this to do a if(sock <= 0) instead. And you don't have any issues testing with just one (the first) socket, correct? Can you try adding debug logging as well so we get more logging info than just the fatal error, so we get information on what file and line this issue is triggered in. 

    Best regards,

    Simon

  • Simon thanks for the response

    Both sockets are grater than 0, 7 and 9.
    I changed it to point to google, but I get a -7200 error in the log that I don't see when hitting my server, and this occurs when using both sock and sock2, but sock gets a result back and does not crash, where sock2 crashes.


    here is the log from sock2 where it crashes:

    Connecting to HTTP Server:
    --- 67 messages dropped ---
    Sockets 1: 7
    Socket 2: 9
    [00:02:10.678,619] <dbg> net_sock_tls: tls_alloc: (main): Allocated TLS context, 0x20001cd0
    --- 358 messages dropped ---
    [00:02:10.678,863] <dbg> net_sock: zsock_socket_internal: (main): socket: ctx=0x20006978, fd=8
    [00:02:10.740,936] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001d70: 0040: c0 28 00 6b c0 0a c0 14 00 39 c0 af c0 a3 c0 2b .(.k.....9.....+
    --- 2 messages dropped ---
    [00:02:10.741,180] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001d70: 0050: c0 2f 00 9e c0 ac c0 9e c0 23 c0 27 00 67 c0 09 ./.......#.'.g..
    [00:02:10.742,706] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001d70: 00b0: 72 65 77 65 62 73 69 74 65 73 2e 6e 65 74 00 0a rewebsites.net..
    [00:02:10.893,402] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:3843: 0x20001d70: 0ff0: 47 54 53 20 43 41 20 31 43 33 30 82 01 22 30 0d GTS CA 1C30.."0.
    [00:02:10.896,514] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_tls.c:7079: 0x20001d70: Use configuration-specific verification callback
    [00:02:10.915,893] <err> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_tls.c:7136: 0x20001d70: x509_verify_cert() returned -9984 (-0x2700)
    [00:02:10.915,985] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:5031: 0x20001d70: => send alert message
    [00:02:10.916,046] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:5032: 0x20001d70: send alert level=2 message=42
    [00:02:10.916,137] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2793: 0x20001d70: => write record
    [00:02:10.916,229] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2881: 0x20001d70: output record: msgtype = 21, version = [3:3], msglen = 2
    [00:02:10.916,320] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001d70: dumping 'output record sent to network' (7 bytes)
    [00:02:10.916,534] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001d70: 0000: 15 03 03 00 02 02 2a ......*
    [00:02:10.916,625] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2177: 0x20001d70: => flush output
    [00:02:10.916,687] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2194: 0x20001d70: message length: 7, out_left: 7
    [00:02:10.917,419] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2201: 0x20001d70: ssl->f_send() returned 7 (-0xfffffff9)
    [00:02:10.917,510] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2229: 0x20001d70: <= flush output
    [00:02:10.917,572] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2937: 0x20001d70: <= write record
    [00:02:10.917,663] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:5044: 0x20001d70: <= send alert message
    [00:02:10.917,755] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_tls.c:7245: 0x20001d70: ! Certificate verification flags 00000004
    [00:02:10.919,738] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_tls.c:3801: 0x20001d70: <= handshake
    [00:02:10.919,738] <err> net_sock_tls: TLS handshake error: -2700
    [00:02:10.920,410] <dbg> net_sock_tls: tls_alloc: (main): Allocated TLS context, 0x200021d8
    [00:02:10.920,654] <dbg> net_sock: zsock_socket_internal: (main): socket: ctx=0x20006a18, fd=10
    [00:02:10.926,208] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f54, st=0, user_data=(nil)
    [00:02:10.926,849] <dbg> net_sock: zsock_received_cb: (rx_q[0]): ctx=0x20006978, pkt=0x20058f94, st=0, user_data=(nil)
    [00:02:10.977,966] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f14, st=0, user_data=(nil)
    [00:02:11.002,288] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f54, st=0, user_data=(nil)
    [00:02:11.002,655] <dbg> net_sock: zsock_received_cb: (rx_q[0]): ctx=0x20006978, pkt=(nil), st=0, user_data=(nil)
    [00:02:11.002,685] <dbg> net_sock: zsock_received_cb: (rx_q[0]): Set EOF flag on pkt 0x20058f94
    [00:02:11.232,940] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f14, st=0, user_data=(nil)
    [00:02:11.233,154] <dbg> net_sock: zsock_received_cb: (rx_q[0]): ctx=0x20006978, pkt=(nil), st=0, user_data=(nil)
    [00:02:11.233,184] <dbg> net_sock: zsock_received_cb: (rx_q[0]): Set EOF flag on pkt 0x20058f94
    [00:02:11.910,614] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f54, st=0, user_data=(nil)
    [00:02:13.856,842] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f14, st=0, user_data=(nil)
    [00:02:14.675,262] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f54, st=0, user_data=(nil)
    [00:02:15.699,066] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f54, st=0, user_data=(nil)
    [00:02:15.803,070] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f14, st=0, user_data=(nil)
    [00:02:15.804,473] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006838, pkt=0x20058f54, st=0, user_data=(nil)
    [00:02:15.923,797] <err> os: ***** MPU FAULT *****
    [00:02:15.923,828] <err> os: Data Access Violation
    [00:02:15.923,828] <err> os: MMFAR Address: 0x0
    [00:02:15.923,858] <err> os: r0/a1: 0x00000000 r1/a2: 0x00000000 r2/a3: 0x00000000
    [00:02:15.923,858] <err> os: r3/a4: 0x00000000 r12/ip: 0x00000413 r14/lr: 0x00004140
    [00:02:15.923,889] <err> os: xpsr: 0x29000000
    [00:02:15.923,889] <err> os: Faulting instruction address (r15/pc): 0x0004e958
    [00:02:15.923,919] <err> os: >>> ZEPHYR FATAL ERROR 19: Unknown error on CPU 0
    [00:02:15.923,980] <err> os: Current thread: 0x200049c8 (main)
    [00:02:16.022,979] <err> coredump: #CD:BEGIN#
    [00:02:16.030,914] <err> coredump: #CD:5a4501000300050013000000
    [00:02:16.040,405] <err> coredump: #CD:4102004400
    [00:02:16.048,675] <err> coredump: #CD:00000000000000000000000000000000130400004041000058e9040000000029
    [00:02:16.061,645] <err> coredump: #CD:384d022000000000000000000000000000000000000000000000000000000000
    [00:02:16.074,584] <err> coredump: #CD:00000000
    [00:02:16.082,672] <err> coredump: #CD:4d0100c8490020904a0020
    [00:02:16.092,010] <err> coredump: #CD:a013002060880120000000000180000000000000000000000000000000000000
    [00:02:16.104,980] <err> coredump: #CD:67150a00000000000000000000000000008002003cf643000000000040880120
    [00:02:16.117,950] <err> coredump: #CD:00000000ffffffffffffffffffffffff104e022000000000204a0020204a0020
    [00:02:16.130,920] <err> coredump: #CD:000100001dbc0400000000000000000000000000000000006d61696e00000000
    [00:02:16.143,920] <err> coredump: #CD:00000000000000000000000000000000000000000000000002000000b83e0220
    [00:02:16.156,890] <err> coredump: #CD:0010000000000000fc0d00200000000000000000000000000000000000000000
    [00:02:16.169,860] <err> coredump: #CD:00000000f5ffffff
    [00:02:16.178,649] <err> coredump: #CD:4d0100b83e0220b84e0220
    [00:02:16.187,957] <err> coredump: #CD:f0f0f0f0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.200,958] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.213,928] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.226,898] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.239,868] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.252,868] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.265,838] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.278,808] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.291,778] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.304,779] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.317,749] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.330,718] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.343,688] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.356,658] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.369,659] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.382,629] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.395,599] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.408,569] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.421,539] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.434,509] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.447,509] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.460,479] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.473,449] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.486,419] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.499,389] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.512,390] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.525,360] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.538,330] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.551,300] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.564,270] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.577,270] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.590,240] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.603,210] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.616,210] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.629,180] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.642,150] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.655,151] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.668,121] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.681,091] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.694,061] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.707,061] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.720,031] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.733,001] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.745,971] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.758,972] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.771,942] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.784,912] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.797,882] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.810,852] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.823,822] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.836,822] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.849,792] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.862,762] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.875,732] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.888,732] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.901,702] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.914,672] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    [00:02:16.927,673] <err> coredump: #CD:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac847022040000000
    [00:02:16.940,643] <err> coredump: #CD:d047022010000000100000003d050500270000003d050500a04a022012000000
    [00:02:16.953,613] <err> coredump: #CD:f047022010000000100000003d05050002000000000000001000000012000000
    [00:02:16.966,583] <err> coredump: #CD:ac4a022002000000f0ffffff744802200200000000000000100000000f130500
    [00:02:16.979,583] <err> coredump: #CD:100000000447022030000020d04702204048022016000000160000003d050500
    [00:02:16.992,553] <err> coredump: #CD:10000000730000003000002018000000fc4a022002000000684802202a000000
    [00:02:17.005,523] <err> coredump: #CD:2a0000003d050500160000000f130500000000002c000000244b022002000000
    [00:02:17.018,493] <err> coredump: #CD:d6ffffffec48022002000000000000002a0000000f1305003000002040480220
    [00:02:17.031,463] <err> coredump: #CD:928c0c0000000000220000000000000000000000944702202a00000000000000
    [00:02:17.044,433] <err> coredump: #CD:3000002068480220928c0c00000000003600000000000000e448022073000000
    [00:02:17.057,403] <err> coredump: #CD:00000000000000000000000000000000000000000f000000a44b022002000000
    [00:02:17.070,404] <err> coredump: #CD:f3ffffff6c49022002000000000000000d0000000f130500c448022004480220
    [00:02:17.083,374] <err> coredump: #CD:e12108006d010800c44802203c00000000000000144802200d00000000000000
    [00:02:17.096,343] <err> coredump: #CD:30000020e8480220928c0c000000000019000000000000006449022073000000
    [00:02:17.109,313] <err> coredump: #CD:00000000000000000000000000000000000000000000000001000000781b0b00
    [00:02:17.122,314] <err> coredump: #CD:c0880c0000000000000000000000000000000000840c00200000000000000000
    [00:02:17.135,284] <err> coredump: #CD:01000000050000000000000000000000840c0000307800000000000016000000
    [00:02:17.148,254] <err> coredump: #CD:6c490220ac480220e12108006d0108006c49022033000000e12108000b650000
    [00:02:17.161,224] <err> coredump: #CD:0200000000000000180000001c000000ac480220a0c20a00e121080000000000
    [00:02:17.174,224] <err> coredump: #CD:20490220010000000a00000005480220060000020000000001000000a0c20a00
    [00:02:17.187,194] <err> coredump: #CD:0000000005490220010000000200000022490220060100000000000004000000
    [00:02:17.200,164] <err> coredump: #CD:840c0020f3190800ff010000840c002060190020db1d08006019002060190020
    [00:02:17.213,134] <err> coredump: #CD:60190020c92008003f200800817d000080660000332208001c000000f00c0020
    [00:02:17.226,135] <err> coredump: #CD:00000000d18000000a000000d4480220040000006c490220ffffffff1a00ffff
    [00:02:17.239,105] <err> coredump: #CD:ffffffff00000000000000000000000085490220404902206c490220d90e0000
    [00:02:17.252,075] <err> coredump: #CD:4049022090b00c00ffffffffffffffffffffffff6df700006f6e20666c616773
    [00:02:17.265,045] <err> coredump: #CD:203030303030303006000002a0c20a0090b00c00d90e0000180000006c490220
    [00:02:17.278,015] <err> coredump: #CD:00020305000000000002030506000002d1f400000200000090b00c00d90e0000
    [00:02:17.291,015] <err> coredump: #CD:6c490220edac05006c4902200000000000000000307832303030316437303a20
    [00:02:17.303,985] <err> coredump: #CD:3c3d2068616e647368616b650a00ffffffffffffffffffff5c4a022017240500
    [00:02:17.316,955] <err> coredump: #CD:00000000a16a080030d70420948b0520b44902200000000000000000644a0220
    [00:02:17.329,925] <err> coredump: #CD:15000000b10e0a0030000020284b022000b50c00084a02200c00000000000000
    [00:02:17.342,895] <err> coredump: #CD:c44d022058b70c002100000000000000070000007f4a02200000000000000000
    [00:02:17.355,895] <err> coredump: #CD:01000000781b0b00000000000000000000000000000000000000000094a10c00
    [00:02:17.368,865] <err> coredump: #CD:0200000094a10c0001000000ffffffffffffffff29700500bb4a0220db560100
    [00:02:17.381,835] <err> coredump: #CD:f00100000802ffffac4a0220ff01000000000000010000005c4a022000000000
    [00:02:17.394,805] <err> coredump: #CD:0000000000b50c000c00000094a10c00020000003c990c0001000000ffffffff
    [00:02:17.407,806] <err> coredump: #CD:ffffffff29700534114b0220300000204d1c000090b00c00030000003c990c00
    [00:02:17.420,776] <err> coredump: #CD:01000000ffffffffffffffff297005004d4b02203c3d2077d60100000802ffff
    [00:02:17.433,746] <err> coredump: #CD:244b0220ff01000000000000010000003c984100d9bb0800491c020000000000
    [00:02:17.446,716] <err> coredump: #CD:701d0020b413000094a10c00020000003c990c005dad0500fc4a022000000000
    [00:02:17.459,716] <err> coredump: #CD:d49c05203c3d2073701d002030000020d90e000090b00c0002000000ffffffff
    [00:02:17.472,686] <err> coredump: #CD:ffffffffffffffffffffffff29700500b04b022069636174f30100000802ffff
    [00:02:17.485,656] <err> coredump: #CD:a44b0220ff0100006c6167732030303030303030340a0000d49b052007000000
    [00:02:17.498,657] <err> coredump: #CD:148c052057bd010014370420786900200700000000000000904b0220a8690020
    [00:02:17.511,627] <err> coredump: #CD:54d70020d76b0100d80e0020000000003c0c00202bc40400000f002000000000
    [00:02:17.524,597] <err> coredump: #CD:004c02202bc40400d80e0020000000003c0c00202bc40400000f002000000000
    [00:02:17.537,597] <err> coredump: #CD:204c02202bc4040002000000971f080002000000d1180a000200000089050a00
    [00:02:17.550,567] <err> coredump: #CD:0200000057ba08000a00000038740a0000000000e1190200951902000a000000
    [00:02:17.563,537] <err> coredump: #CD:f0f20520fbf205200c000000030f02000b000000171401000000000030000020
    [00:02:17.576,538] <err> coredump: #CD:e0880120f0f20520300000201169080000000000b97005000c000000f0010020
    [00:02:17.589,508] <err> coredump: #CD:0c00000095730500f0010020000000006c4d0220816908000000402253740500
    [00:02:17.602,478] <err> coredump: #CD:fcf20520f001002001000000eb790500304d022001000000848b0120584d0220
    [00:02:17.615,447] <err> coredump: #CD:30d0052000000000010000002bc40400f00100200f9b0a000100000081690800
    [00:02:17.628,448] <err> coredump: #CD:8900000063590500f8aa05202bc40400000000009c4d0220f8aa052003820100
    [00:02:17.641,418] <err> coredump: #CD:000000006c4d02200100000033fb0000f0010020300000200f9b0a0000000000
    [00:02:17.654,418] <err> coredump: #CD:1a000000000000004c4e02206400000000000000000000000000000000000000
    [00:02:17.667,388] <err> coredump: #CD:000000000000000001000000781b0b0000000000000000000000000000000000
    [00:02:17.680,358] <err> coredump: #CD:00000000186a00209499052001bb0000f8aa05209c4d0220fb33000000000000
    [00:02:17.693,359] <err> coredump: #CD:00000000000000000000000000000000130400004041000058e9040000000029
    [00:02:17.706,329] <err> coredump: #CD:78220020000000004d4100005f270a007822002000000000b48d0a00cd2a0a00
    [00:02:17.719,299] <err> coredump: #CD:00000000d8210020d8210020152b0a00000000005f3f080000000000008fffff
    [00:02:17.732,299] <err> coredump: #CD:d8210020f9450800ffffffffffffffff000000009a000000b48d0a00d8210020
    [00:02:17.745,269] <err> coredump: #CD:b9470800ffffffffffffffffa947080000000000d14708000000000000000000
    [00:02:17.758,239] <err> coredump: #CD:ffffffff07300800000000000000000080ad0a00105b002000000000b48d0a00
    [00:02:17.771,240] <err> coredump: #CD:149b0a00704e0220fffffffffbff0700000000000000000009000000573e0000
    [00:02:17.784,210] <err> coredump: #CD:0000000033d4040000800200bd180a00c8490020b1cf040007000000504e0220
    [00:02:17.797,180] <err> coredump: #CD:02000000704e0220ffffffff07000000ac9a0a00115700001c00000000000000
    [00:02:17.810,180] <err> coredump: #CD:04000001e8990a00109a0a00400000000002000063140a000900000098d00520
    [00:02:17.823,150] <err> coredump: #CD:d8aa05200100000001000000040000011dbc0400000000000000000000000000
    [00:02:17.836,151] <err> coredump: #CD:ffffffffffffffffffffffff3dbc040000000000b90308000000000093fd0000
    [00:02:17.849,090] <err> coredump: #CD:END#
    [00:02:17.856,781] <err> os: Halting system

  • From what you have shared I'm not able to see a difference in the calls referring to sock and sock2, are there anything else in your application with calls to sock and sock2 that might be different, because I don't see why one of two identical sock calls should crash. Just to make sure, you have changed the crypto backend as Torbjørn suggested in this ticket, as that was one of the steps needed for us to be able to connect to the Google domain.  RE: nRF7002DK and TLS Sockets -7100 error  

    Best regards,

    Simon

  • Simon, Yes I have changed the crypto backend, but that was only the log for when it failed on sock2, here is the log from the success on sock

    Connecting to HTTP Server:
    [00:01:18.133,239] <dbg> net_sock_tls: tls_alloc: (main): Allocated TLS context, 0x20001c08
    [00:01:18.133,483] <dbg> net_sock: zsock_socket_internal: (main): socket: ctx=0x200062a0, fd=8
    [00:01:18.181,304] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001ca8: 0040: c0 28 00 6b c0 0a c0 14 00 39 c0 af c0 a3 c0 2b .(.k.....9.....+
    --- 3 messages dropped ---
    [00:01:18.183,074] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001ca8: 00b0: 72 65 77 65 62 73 69 74 65 73 2e 6e 65 74 00 0a rewebsites.net..
    [00:01:18.323,760] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:3843: 0x20001ca8: 0ff0: 47 54 53 20 43 41 20 31 43 33 30 82 01 22 30 0d GTS CA 1C30.."0.
    [00:01:18.323,883] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:3088: 0x20001ca8: handshake message: msglen = 6684, type = 11, hslen = 6684
    [00:01:18.346,343] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:5031: 0x20001ca8: => send alert message
    [00:01:18.346,435] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:5032: 0x20001ca8: send alert level=2 message=42
    [00:01:18.346,527] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2793: 0x20001ca8: => write record
    [00:01:18.346,618] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2881: 0x20001ca8: output record: msgtype = 21, version = [3:3], msglen = 2
    [00:01:18.346,710] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001ca8: dumping 'output record sent to network' (7 bytes)
    [00:01:18.346,923] <dbg> mbedtls: zephyr_mbedtls_debug: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2886: 0x20001ca8: 0000: 15 03 03 00 02 02 2a ......*
    [00:01:18.347,015] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2177: 0x20001ca8: => flush output
    [00:01:18.347,106] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2194: 0x20001ca8: message length: 7, out_left: 7
    [00:01:18.347,839] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2201: 0x20001ca8: ssl->f_send() returned 7 (-0xfffffff9)
    [00:01:18.347,900] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2229: 0x20001ca8: <= flush output
    [00:01:18.347,991] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:2937: 0x20001ca8: <= write record
    [00:01:18.348,052] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_msg.c:5044: 0x20001ca8: <= send alert message
    [00:01:18.348,144] <inf> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_tls.c:7245: 0x20001ca8: ! Certificate verification flags 00000004
    [00:01:18.350,128] <wrn> mbedtls: WEST_TOPDIR/modules/crypto/mbedtls/library/ssl_tls.c:3801: 0x20001ca8: <= handshake
    [00:01:18.350,158] <err> net_sock_tls: TLS handshake error: -2700
    [00:01:18.350,830] <dbg> net_sock_tls: tls_alloc: (main): Allocated TLS context, 0x20002110
    [00:01:18.351,074] <dbg> net_sock: zsock_socket_internal: (main): socket: ctx=0x20006340, fd=10
    [00:01:18.357,482] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006160, pkt=0x2005787c, st=0, user_data=(nil)
    [00:01:18.358,123] <dbg> net_sock: zsock_received_cb: (rx_q[0]): ctx=0x200062a0, pkt=0x200578bc, st=0, user_data=(nil)
    [00:01:18.391,479] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006160, pkt=0x2005783c, st=0, user_data=(nil)
    [00:01:18.417,205] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006160, pkt=0x2005787c, st=0, user_data=(nil)
    [00:01:18.417,572] <dbg> net_sock: zsock_received_cb: (rx_q[0]): ctx=0x200062a0, pkt=(nil), st=0, user_data=(nil)
    [00:01:18.417,602] <dbg> net_sock: zsock_received_cb: (rx_q[0]): Set EOF flag on pkt 0x200578bc
    [00:01:18.596,252] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006160, pkt=0x2005783c, st=0, user_data=(nil)
    [00:01:18.596,466] <dbg> net_sock: zsock_received_cb: (rx_q[0]): ctx=0x200062a0, pkt=(nil), st=0, user_data=(nil)
    [00:01:18.596,496] <dbg> net_sock: zsock_received_cb: (rx_q[0]): Set EOF flag on pkt 0x200578bc
    [00:01:18.646,545] <dbg> net_sock_packet: zpacket_received_cb: (rx_q[0]): ctx=0x20006160, pkt=0x2005787c, st=0, user_data=(nil)

  • Hi,

     

    Kyle1 said:
    [00:01:18.350,158] <err> net_sock_tls: TLS handshake error: -2700

    This line indicates that you're unable to verify the domain:

    https://github.com/nrfconnect/sdk-mbedtls/blob/v3.1.0-ncs3/include/mbedtls/x509.h#L83

    Do you get this regardless of which domain you're connecting to, or is it only *.azurewebsites.net?

    Do you have SNI enabled? CONFIG_MBEDTLS_SSL_SERVER_NAME_INDICATION=y

     

    Kind regards,

    Håkon

Related