Closed SAndreyV1683 closed 1 year ago
It's likely because the app is leaking socket descriptors (i.e. opening them without closing, Google around for more details).
Let us know if this happens in our sample app, as well as how to reproduce it, since I don't think this will happen during the very first few calls.
Playback steps: App closed, once per minute the app receives a notification from a Fire Base Messaging service that starts a background service on the device. The background service starts the "end point" and registers on the sip server, the background service ends. After 5 hours of work in this mode, the user launches the application, tries to make a call. The error described above occurs.
Okay, so it seems to pretty much confirm the socket leak issue.
The leak could be caused by the app or the library. To investigate further, you can add some logs in sock_bsd.c
, in pj_sock_socket()
, and pj_sock_close()
, to print the sockets being opened and closed. Then you need to reproduce the issue.
The good news is that it's likely you won't need hours to identify the problem. If after a few calls or some period, you notices in the logs that there are some sockets being opened but not closed, then you have found out the root cause. But if the logs show no leak, then the issue is most likely within the app. Perhaps you forget to delete or dereference certain objects?
Describe the bug
An error occurs when trying to make an outgoing call. "Unable to register socket with ioqueue because socket fd is too large."
Steps to reproduce
make an outgoing call
PJSIP version
2.13
Context
define PJ_CONFIG_ANDROID 1
define PJMEDIA_HAS_VIDEO 1
include <pj/config_site_sample.h>
Log, call stack, etc