-
Notifications
You must be signed in to change notification settings - Fork 219
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
Intermittent Error 8: Operation Not Permitted when doing update for multiple devices simultaneously #537
Comments
Hello, For example, you can find the following line twice:
|
Seems like some logs are missing from the beginning when you connect to that device:
There's no |
@philips77 update the logs with initial logs, We checked with a single device also, some logs are repeated and we can see this is a single device update log:
|
@philips77 Our team can / will share more information, but we have clearly narrowed it down to an issue with this library. To eliminate any possibility of app related issues, we coded up a simple structure to initiate an update on multiple devices simultaneously with no delegates, single function, very basic library initiation. Single device update works perfect every time. Multi device update by calling DFUManager.update() twice and allowing the library to run through the update process fails almost every time. The library seems to start connecting / confusing the other device being updated, initiating connects multiple times, etc. None of these issues exist for a single device update. Logs/details are important, will fill in any details you need, but have a quick question to narrow down some quick validation testing:
|
Thank you for the logs. I'll review then as soon as possible. I never tried multi device update, but every update should be independent and not interfere with other instances. Of course there's a point where the lib meets the os calls and I suspect a problem there. As you wrote , the lib may mistakenly respond to start calls from all running instances, not just the one it should. I spent some times in your previous logs, trying to find that place, but the interesting part was missing. With more logs I can go further.
|
@philips77 Here are Some logs that might be useful for your debugging
|
@philips77 to add some context to these logs above, you will see in the logs with 2 updates initiated (labelled Dual) that there are multiple connection attempts and subsequent failures. For single device update (same code, just a single device selected, nakul is posting now) there are not multiple connection attempts, and always succeeds in programming. |
Hello, I have just one suggestion. Did you try to synchronize "connecting/initial" stage of the DFU process? I added synchronization like: Do not start another update until the current one is not at least in DFUState.uploading stage. |
With iPhone 15, When updating multiple BLE devices simultaneously, we have observed an intermittent
Error 8: Operation not permitted
issue.The firmware update zip package has a size of around 360kb. The error usually happens near the start but sometimes happens after several packets are transferred. The DFU secure_bootloader comes from SDK 15.2.0_9412b96 and we do NOT use bonding. We have captured a log with verbosity as below provided.
We found a similar issue #319 and tried to change packetReceiptNotifications from 1-22 and all values resulted in failures.
our code for initialization
**DFU Bootloader version **
**Device information **
Question
With this library is it allowed to start multiple devices simultaneously for firmware update?
When multiple devices are set to update simultaneously does it impact the message flow, Even though
packetReceiptNotifications
parameter we tried with from 1-20 all resulted intoError 8: Operation not permitted
error.Log
The text was updated successfully, but these errors were encountered: