Envisalink 3 lock up
Posted: Tue Jan 24, 2023 11:19 pm
Hi, I've been troubleshooting an issue with someone's Envisalink 3 module when used through the envisalink integration in Home Assistant.
The connection to the envisalink becomes unresponsive for a couple of minutes. Any attempts to reconnect during that time are met with connection reset errors (I assume indicating that the device still thinks it has the original connection open). The symptoms look very similar to the bug resolved in this thread:
https://forum.eyezon.com/viewtopic.php? ... &start=10
I have a set of network captures showing the problem that I'm happy to share. Here's a snippet of the problem:
From this trace it would appear that the envisalink's network stack just stops processing packets from the client as it doesn't seem to accept the client's ACK of the last data it sent (356).
I realize that the envisalink 3 is very old at this point so I don't know if there's interest in tracking this issue down but I do have the network captures and have someone who's system it is easily reproducible on.
Thanks!
The connection to the envisalink becomes unresponsive for a couple of minutes. Any attempts to reconnect during that time are met with connection reset errors (I assume indicating that the device still thinks it has the original connection open). The symptoms look very similar to the bug resolved in this thread:
https://forum.eyezon.com/viewtopic.php? ... &start=10
The issue appears to be very timing dependent and at one point it seemed related to both a send and receive happening within less than a millisecond. However, I wrote a script to try and reproduce this issue in a standalone manner but was unable to trigger the issue.We found a potential scenario whereby the TPI connection locks up for a couple of minutes and needs a socket reset to recover. You need a pretty noisy network to cause it to happen.
I have a set of network captures showing the problem that I'm happy to share. Here's a snippet of the problem:
Code: Select all
356 0.000505 envisalink.home homeassistant.local TCP 107 4025 → 45202 [PSH, ACK] Seq=5142 Ack=107 Win=1300 Len=53
357 0.000351 homeassistant.local envisalink.home TCP 60 45202 → 4025 [ACK] Seq=114 Ack=5195 Win=63965 Len=0
358 0.000298 envisalink.home homeassistant.local TCP 60 4025 → 45202 [ACK] Seq=5142 Ack=114 Win=1300 Len=0
359 0.000293 homeassistant.local envisalink.home TCP 60 [TCP Dup ACK 357#1] 45202 → 4025 [ACK] Seq=114 Ack=5195 Win=63965 Len=0
360 0.207263 homeassistant.local envisalink.home TCP 61 [TCP Spurious Retransmission] 45202 → 4025 [PSH, ACK] Seq=107 Ack=5195 Win=63965 Len=7
361 0.000686 envisalink.home homeassistant.local TCP 60 4025 → 45202 [ACK] Seq=5142 Ack=114 Win=1300 Len=0
362 0.290739 envisalink.home homeassistant.local TCP 63 [TCP Spurious Retransmission] 4025 → 45202 [PSH, ACK] Seq=5142 Ack=114 Win=1300 Len=9
363 0.000458 homeassistant.local envisalink.home TCP 60 [TCP Dup ACK 357#2] 45202 → 4025 [ACK] Seq=114 Ack=5195 Win=63965 Len=0
364 0.116122 homeassistant.local envisalink.home TCP 61 [TCP Spurious Retransmission] 45202 → 4025 [PSH, ACK] Seq=107 Ack=5195 Win=63965 Len=7
365 0.000688 envisalink.home homeassistant.local TCP 60 4025 → 45202 [ACK] Seq=5142 Ack=114 Win=1300 Len=0
I realize that the envisalink 3 is very old at this point so I don't know if there's interest in tracking this issue down but I do have the network captures and have someone who's system it is easily reproducible on.
Thanks!