ITD not trying to reconnect after PineTime re-enters range #44
Labels
No Label
Bug
Cantfix
Duplicate
Enhancement
External
Help Wanted
In Progress
Invalid
Question
Waiting
Waiting For Info
Waiting for Upstream
Wontfix
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Elara6331/itd#44
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Steps to reproduce:
Per bluetoothctl (
bluetoothctl devices Connected
) there no connected devices.Per pinetime, no bt icon is displayed.
The actual steps to reproduce may require wandering in and out of range more than once before staying out of range for a few minutes.
Built from source, git log shows
73a679d10bf09a965b5afd3d0e81f51813325c67
as the latest commit.Sorry, forgot to add, this was on Arch Linux Arm, Pine64 PinePhonePro.
IIT not trying to reconnect after PineTime re-enters rangeto ITD not trying to reconnect after PineTime re-enters rangeIn your output, I can see these lines:
Which tells me ITD actually did reconnect to the device
After reporting this, it did not display the BT icon on the PineTime nor did any future notifications pop up. I'll see if I can capture any additional information in a future reply.
Actually, I guess there isn't much more to capture.
And the output of itd has changed by one line:
I'm seeing the same problem on Arch Linux on AMD. I've attached a debug log where I've inserted a few blank lines each time I walked out of range for a few seconds. Each time I came back in range I sent a notification. Everything worked fine the first two times I returned, but the third time nothing at all was logged, the watch claimed to be disconnected, and sending a notification resulted in only the single "Checking characteristic status" line you see at the end.
This indicates that InfiniTime isn't connected, so it's normal in that case. If you try to reconnect to manually through bluetooth settings, does ITD display a connection notification? If not, this is likely due to BlueZ being notoriously unreliable in the way it handles connections. Sometimes, it just decides to block forever without ever returning a response, which will stop ITD's reconnect loop and prevent it from responding to further events. Does restarting ITD fix it until it decides to break again? That would confirm this as the issue.
Yes. Restarting ITD (and I believe taking no other actions, IIRC, I'll double check this later and update again, I have just been using the watch standalone ever since) at that point will cause it to resume functioning until it decides to break again.
Arsen6331: Yes, based on a bit of testing, it seems to be the problem you are describing. I took these steps:
bluetoothctl connect $mac
caused it to connect. On reconnection, no messages were logged by itd and no connection message was displayed, but sending a notification withnotify-send
did cause the notification to show up on the watch.So I think we are indeed seeing BlueZ's "notorious unreliability". 😔 Is there any possibility of a workaround, short of writing a script that restarts itd when the watch disconnects?
Similar issue with the pinephone waking up from deep sleep mode. Sometimes it won't reconnect to the pinetime and I have to restart ITD