zephyr: Unbonded peripheral gets 'Tx Buffer Overflow' when erasing bond on master

Describe the bug

[00709206] <err> bt_ctlr_hci: Tx Buffer Overflow
[00709206] <err> bt_hci_core: assert: 'bt_hci_evt_is_prio(hdr->evt)' failed
***** Kernel OOPS! *****
Current thread ID = 0x200025a0
Faulting instruction address = 0x2b15a
Fatal fault in thread 0x200025a0! Aborting.
[00961529] <err> bt_ctlr_llsw_ctrl: assert: '_radio.ticker_id_prepare == (7 + conn->handle)' failed
***** Kernel OOPS! *****
Current thread ID = 0x20002e44
Faulting instruction address = 0x364d4
Fatal fault in ISR! Spinning...

To Reproduce Steps to reproduce the behavior:

  1. Bond master and peripheral
  2. Remove bonds on peripheral
  3. Observe peripheral disconnecting
  4. Since master still has peripheral bonded it tries to reconnect
  5. Connection is established and security start is called (that will fail as peripheral does not have bond)
  6. When security fails and peripheral disconnects observe devices go back to point 4
  7. At some point once devices are connected and security start is in progress remove bonds on central
  8. Observe crash on peripheral; central is unaffected (disconnects and has bonds removed)

Expected behavior No crash. Central should be able to erase its bonds without effect on peripheral.

Impact Showstopper

Screenshots or console output N/A

Environment (please complete the following information): master

Additional context N/A

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 16 (10 by maintainers)

Commits related to this issue

Most upvoted comments

Let’s close this issue unless @pdunaj can reproduce it on the latest master.