Hi Sergio
Many thanks for your reply!
I will check out the things you mentioned about PCBs.
Best regards
Staffan
Sent: Monday, June 08, 2015 at 4:51 PM
From: "Sergio R. Caprile" <[email protected]>
To: [email protected]
Subject: Re: [lwip-users] ERROR:Assertion failed: "tcp_slowtmr: active pcb->state != CLOSED" at line 662 in tcp.c
From: "Sergio R. Caprile" <[email protected]>
To: [email protected]
Subject: Re: [lwip-users] ERROR:Assertion failed: "tcp_slowtmr: active pcb->state != CLOSED" at line 662 in tcp.c
I don't know if 1.3.2 has the following comment before the function:
/**
* Called every 500 ms and implements the retransmission timer and the
timer that
* removes PCBs that have been in TIME-WAIT for enough time. It also
increments
* various timers such as the inactivity timer in each PCB.
*
* Automatically called from tcp_tmr().
*/
void
tcp_slowtmr(void)
But I bet it sure has some code looking sort of like this one:
tcp_slowtmr_start:
/* Steps through all of the active PCBs. */
prev = NULL;
pcb = tcp_active_pcbs;
if (pcb == NULL) {
LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n"));
}
while (pcb != NULL) {
LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n"));
LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state
!= CLOSED);
As far as I understand, you seem to have an active pcb that stays CLOSED
for too long.
Perhaps you forgot to free it ?
Anything else to give us a clue ?
What are you actually doing with what and how do you end up there ?
--
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users
/**
* Called every 500 ms and implements the retransmission timer and the
timer that
* removes PCBs that have been in TIME-WAIT for enough time. It also
increments
* various timers such as the inactivity timer in each PCB.
*
* Automatically called from tcp_tmr().
*/
void
tcp_slowtmr(void)
But I bet it sure has some code looking sort of like this one:
tcp_slowtmr_start:
/* Steps through all of the active PCBs. */
prev = NULL;
pcb = tcp_active_pcbs;
if (pcb == NULL) {
LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n"));
}
while (pcb != NULL) {
LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n"));
LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state
!= CLOSED);
As far as I understand, you seem to have an active pcb that stays CLOSED
for too long.
Perhaps you forgot to free it ?
Anything else to give us a clue ?
What are you actually doing with what and how do you end up there ?
--
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users
_______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
