|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 2/2] tools/xenstore: set open file descriptor limit for xenstored
Juergen Gross writes ("Re: [PATCH v4 2/2] tools/xenstore: set open file
descriptor limit for xenstored"):
> On 27.09.21 16:13, Andrew Cooper wrote:
> > both work fine, and strace confirms they issue correct system calls.
>
> Not on my test system:
>
> # prlimit --pid 734 --nofile=unlimited
> prlimit: failed to set the NOFILE resource limit: Operation not permitted
> # prlimit --pid 734 --nofile=262144
> #
>
> > Support for "unlimited" as a parameter has existed for the entire
> > lifetime of the utility,
> > https://github.com/karelzak/util-linux/commit/6bac2825af7216c5471148e219dbcf62ec5ede84
>
> Yes, but not all systems seem to support raising the limit to
> "unlimited".
This is strange. Are you running in some kind of restricted
environment ? <strike>Or maybe prlimit is trying to adjust the soft
limit (only) but failing to remove the hard limit too ? I confess
that I never use prlimit, just ulimit.</strike>
I just tried this on my laptop:
root(ian)@zealot:~> ulimit -Hn 1048577
bash: ulimit: open files: cannot modify limit: Operation not permitted
root(ian)@zealot:~> ulimit -Hn 1048576
root(ian)@zealot:~>
????
1048576 is 0x100000.
1048577 is 0x100001.
The intertubes caused me to check sysctl fs.file-max (1591013),
/etc/security/limits.conf (nothing uncommented). Eventually a helpful
person pointed me to /proc/sys/fs/nr_open.
root(ian)@zealot:~> cat /proc/sys/fs/nr_open
1048576
This is completely deranged. The internet is full of people working
around this (if you are unluckloy you try to set nofile unlimited in
some file in /etc/security and then you can't log in!).
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=60fd760fb9ff7034360bab7137c917c0330628c2
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c2d64fb6cae9aae480f6a46cfe79f8d7d48b59f
^ that explains why things are like this. Oh woe is us what madness
have we collectively perpetrated.
I suggest the following workaround for our scripts: try to read
/proc/sys/fs/nr_open and use the value from there if there is one;
otherwise use "unlimited".
I think that is better than sort-of-guessing 262144. What you do you
think ?
Thanks,
Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |