Re: Networking framework crash
Re: Networking framework crash
- Subject: Re: Networking framework crash
- From: Greg Parker <email@hidden>
- Date: Thu, 05 Feb 2015 11:48:38 -0800
> On Feb 4, 2015, at 8:21 PM, Graham Cox <email@hidden> wrote:
>
> Do you or anyone else know if there's some inherent limit to the number of simultaneous sockets that can be opened? I'm supposing that there's a 1:1 correspondence between a NSURLSession and a socket, because of the description against [NSURLSession resetWithCompletionHandler:] says:
>
> "This method empties all cookies, caches and credential stores, removes disk files, flushes in-progress downloads to disk, and ensures that future requests occur on a new socket"
>
> This implies that there's a socket associated with the session.
Network connections use sockets. Sockets use file descriptors. There is a per-process limit on the number of open file descriptors.
You can use getrlimit(RLIMIT_NOFILE, …) to query the limit in your process, and setrlimit(RLIMIT_NOFILE, …) to attempt to raise it. The default limit may be as low as 256, depending on OS version and on how the process is launched. (Note that each two-way network connection uses two file descriptors.) setrlimit() should be able to raise the file descriptor limit to a few thousand unless your system administrator is mean.
If you hit that limit you should see errors from various network API. File a bug report if you find some API that causing weird crashes instead of failing gracefully or halting with an appropriate error message when you run out of file descriptors.
--
Greg Parker email@hidden Runtime Wrangler
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden