-
Notifications
You must be signed in to change notification settings - Fork 158
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
An endpoint that never goes away (Low-Level) #2472
Comments
@RemiNVG can you take a look at this? |
Sorry...I don't understand?? |
I guess the same is here |
Yep, looks like some caching issue. |
May it be connected somehow with the latest update of Google Play Services to 24.23.35? As before that I didn't observe such an issue. |
Actually I do not know whether GPS has been updated or not but update came from Samsung: |
@bourdakos1 @RemiNVG could you please advise us what may be the cause of that? |
… and let us know the reason behind this:
|
On trying to discover a second time one can see in logs these errors:
|
DNS-SD services have some TTL for caching, generally 2min, so if a service disappears (for example the remote device disconnecting from the network), it will still appear to be there when restarting discovery, for the duration of the TTL. There was also an issue with services being kept in the cache for too long that could make the problem worse, but should get fixed via google play system update soon. |
@RemiNVG Thanks for the reply! Could you please let us know when the update will be released? Or, at least, at what date the fix is scheduled to be available? Thanks in advance! |
And will the fix update address just a second issue, i.e. keeping a service for a long period, or TTL decreasing/zeroing as well? |
I'm not sure it addresses everything in this issue (in particular it's expected that a service may still be found within its TTL if the advertising device just disconnected), but the fix I'm mentioning is https://r.android.com/2440004. Before, TTL-expired services would only be removed periodically (due to migration from an older design), so it was possible they stick around for longer than they should, but that change ensures expired services never get returned. Most devices should have it enabled in a later Google Play System Update, but that will likely take a small number of months (the change to enable it was merged later in AOSP). |
Project
Nearby Connections
Language
Other
OS Platform
Other
What happened?
I set up a connection between Android (startDiscovery) and Swift (startAdvertising), and then after accepting the connection (iOS side), a connection is established.
When I call stopDiscovery on Android, and "cleanly" stop the process on iOS (stopAdvertising + disconnect), if I restart startDiscovery on the Android side, it still sees the old EndPoint (event -> onEndpointFound), while the connections on the iOS side are all cut...
Impossible to clean up properly, the only solution is to restart the Android device.
What did you expect to happen?
explain above
How can we reproduce it (as minimally and precisely as possible)?
1/ StartDiscovery on Android
2/ StartAdvertising on iOS
3/ Android: Connect to EndPoint (requestConnection)
4/ iOS: AcceptConnection
5/ Android: StopDiscovery
6/ iOS: StopAdvertising
7/ iOS: Disconnect
How often does this bug happen?
Every time
Standalone code to reproduce the issue
...
Relevant log output
No response
Anything else we need to know?
No response
The text was updated successfully, but these errors were encountered: