Android: Calling a device around 10 times result in daemon not responding anymore
Devices
- Caller (linux)
- Callee (Android)
Network topology
Anything. Can be reproduce if both devices are on the same network. By default, the scenario is run with UPNP and TURN disabled on both devices.
Symptoms
If you have any of the following symptoms, it's probably it.
- After around 10 successful calls, the Android device will stop receiving any new call from any peer.
- Toggling the Android account status (online/offline) will keep the green
online
label. - No peer discovery on the DHT.
Scenario
- Call an Android device (can be put in auto-answer mode)
- Wait a few seconds after picking up the call.
- Hang up.
- Reset the connection between the peers by disabling the caller's account.
- Wait a few moment (around 5 seconds) for sockets to be released.
- Re-enable the caller's account.
- Jump 1.
There's a scenario.scm that automated this process
- You can parameterize the waiting period for the call with
GRACE-PERIOD
- You can parameterize duration of the call with
MEDIA-FLOW
- To run the test, call
(run-scenario "result.txt")
.
Edit 1
From my debugging:
- There's no leak of any file descriptor
- Memory usage is okay and does not seem to have any leak
- Logging continue (for example changing account's preferences)
Edit 2
Other symptoms:
- Calling a peer from the Android device result in a gray screen (no red hang up button)
- Sending messages to a peer does not show in the conversation history
- In the above case, the peer is never joined
Edited by Olivier Dion