Koenkk / zigbee-herdsman

A Node.js Zigbee library
MIT License
473 stars 295 forks source link

Unhandled EZSP frame incomingManyToOneRouteRequestHandler and OTA update in progress causes EZSP to stop #834

Closed irata-coder closed 1 week ago

irata-coder commented 8 months ago

What happened?

Unhandled EZSP frame incomingManyToOneRouteRequestHandler while performing an OTA update of another device, causes EZSP to stop

This recreates the issue always, although I beleive the root cause is when resending data frames, around the code which queues/waits for messages. I believe there has been changes to this code recently, as this error is recent. When network traffic is busy it appears to trigger a bug in the code, albeit I can't yet see why.

What did you expect to happen?

Receipt of this frame should not cause EZSP and driver to stop

How to reproduce it (minimal and precise)

1.) Create a Zigbee network with z2m and sonoff ZBDongle-E with 7.3.2.0 build 212 (albeit also recreatable on earlier builds) 2.) Add Hive 1613V Active Plug and Bosch BTH-RA 3.) Start an OTA update on Bosch BTH-RA 4.) Within a few minutes, this frame will arrive and the error is seen, stopping the driver

Zigbee2MQTT version

1.34.0

Adapter firmware version

7.3.2.0 build 212

Adapter

EZSP Sonoff Dongle Plus-E EFR32MG21

Debug log

  zigbee-herdsman:adapter:ezsp:uart <-- [6273b1a9292ab455fcab6527a30b8c499824c77e] +393ms
  zigbee-herdsman:adapter:ezsp:uart <-- DATA (6,2,0): 6273b1a9292ab455fcab6527a30b8c499824c77e +392ms
  zigbee-herdsman:adapter:ezsp:uart --> ACK  (7) +0ms
  zigbee-herdsman:adapter:ezsp:uart --> [87009f7e] +393ms
  zigbee-herdsman:adapter:ezsp:ezsp <== Frame: 3190017d00a1e7a53f2f02095e1e0004 +393ms
  zigbee-herdsman:adapter:ezsp:ezsp <== 0x7d: {"_cls_":"incomingManyToOneRouteRequestHandler","_id_":125,"_isRequest_":false,"source":59297,"longId":{"type":"Buffer","data":[0,30,94,9,2,47,63,165]},"cost":4} +1ms
  zigbee-herdsman:adapter:ezsp:driv Unhandled frame incomingManyToOneRouteRequestHandler +2s
  zigbee-herdsman:adapter:ezsp:uart --> Error: Error: {"sequence":3} after 2000ms +21ms
  zigbee-herdsman:adapter:ezsp:uart -!- break rewaiting (3) +0ms
  zigbee-herdsman:adapter:ezsp:uart Can't resend DATA frame (2,0,1): 3200017e002672f1feffdbb48401 +0ms
  zigbee-herdsman:adapter:ezsp:driv Reset connection. Try 0 +19ms
  zigbee-herdsman:adapter:ezsp:driv Stop driver +1ms
  zigbee-herdsman:adapter:ezsp:ezsp Stop ezsp +20ms
Koenkk commented 8 months ago

@kirovilya could you check this?

Bascht74 commented 7 months ago

@kirovilya Could you take a look at that?

Here are some logs of my adapter: https://github.com/Koenkk/zigbee2mqtt/discussions/21011

github-actions[bot] commented 1 month ago

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 30 days