-
Notifications
You must be signed in to change notification settings - Fork 7.5k
LwM2M: Fix BT device pending / retry errors #4888
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Not following, is this suggesting to clone every single packet? Perhaps LwM2M should follow the TCP design and have its own poll to clone the packets for timeout handling. |
Btw, this is not unique to Bluetooth, afaik any driver using 6lo compression will change the packet. |
Any updates on a fix for this? |
Let's mark this as 1.11. I want to get the fix right for this. |
@mike-scott can we still expect a fix for this on 1.11? |
@carlescufi I think I'll defer this until post net-buf changes land. This fix needs to go into the CoAP lib processing for retry so that it not only fixes LwM2M but also users of CoAP APIs as well. Removing 1.11 target. |
what is the status of this one? |
@mike-scott ping |
@nashif This issue goes away in the move to sockets. We can close. Unless you want to track it separately. |
Uh oh!
There was an error while loading. Please reload this page.
In the bluetooth L2 layer the packets are being compressed prior to send. This means we cannot merely resend the existing packets upon a packet timeout in the LwM2M / CoAP libraries. Much like they do in the TCP subsystem, we need to make a clone of the original data for the pending / retry process.
As a result, we are seeing a double unref on NON-bluetooth devices:
#4391
And on bluetooth devices the retry process fails w/ ENOMEM (-12).
The text was updated successfully, but these errors were encountered: