-
Notifications
You must be signed in to change notification settings - Fork 1.1k
aioble/server: Fix _init_capture() guard to match _server_shutdown().#1082
Open
andrewleech wants to merge 1 commit intomicropython:master from
Open
aioble/server: Fix _init_capture() guard to match _server_shutdown(). #1082andrewleech wants to merge 1 commit intomicropython:master from
andrewleech wants to merge 1 commit intomicropython:master from
Conversation
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
@andrewleech
andrewleech
force-pushed
the
aioble-fix-init-capture-guard-mismatch
branch
from
February 18, 2026 02:24
6b70880 to
6cafc0e
Compare
@andrewleech
andrewleech
changed the title
(削除) aioble/server: Fix _init_capture() guard to match _server_shutdown() (削除ここまで)
(追記) aioble/server: Fix _init_capture() guard to match _server_shutdown(). (追記ここまで)
Feb 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
In aioble, bluetooth devices that use capture-mode characteristics can silently stop receiving writes after a partial BLE shutdown —
written()blocks indefinitely because the capture task was never recreated.This happens because
_init_capture()guards on_capture_queuewhile_server_shutdown()guards on_capture_task. If the task gets deleted but the queue persists (partial teardown),_init_capture()sees the queue and returns early. The fix aligns both functions to guard on_capture_taskand cleans up any orphaned attributes before reinitializing.Found while implementing BLE stop/start cycles on STM32WB55 where characteristics are singletons across radio restarts, requiring explicit
_init_capture()calls rather than relying onCharacteristic.__init__().Testing
Tested on unix port exercising full shutdown → reinit → write cycles. Also tested on STM32WB55 hardware with repeated BLE restart cycles under the same singleton characteristic pattern.