]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
safe_asterisk: Don't automatically exceed MAXFILES value of 2^20.
authorWalter Doekes <walter+asterisk@wjd.nu>
Thu, 9 Oct 2014 08:06:26 +0000 (08:06 +0000)
committerWalter Doekes <walter+asterisk@wjd.nu>
Thu, 9 Oct 2014 08:06:26 +0000 (08:06 +0000)
On systems with lots of RAM (e.g. 24GB) /proc/sys/fs/file-max divided
by two can exceed the per-process file limit of 2^20. This patch
ensures the value is capped.

(Patch cleaned up by me.)

ASTERISK-24011 #close
Reported by: Michael Myles
Patches:
  safe_asterisk-ulimit.diff uploaded by Michael Myles (License #6626)
........

Merged revisions 424875 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@424878 65c4cc65-6c06-0410-ace0-fbb531ad65f3

contrib/scripts/safe_asterisk

index 80aa0ca2ef1d0630115fe75a3c5cc5d285c48b2f..60d9806f51dd29ec0f8902aeb0c285a48d754075 100644 (file)
@@ -66,12 +66,17 @@ if test `id -u` != 0; then
        message "safe_asterisk was started by `id -n` (uid `id -u`)."
 else
        if `uname -s | grep Linux >/dev/null 2>&1`; then
-               # maximum number of open files is set to the system maximum divided by two if
-               # MAXFILES is not set.
+               # maximum number of open files is set to the system maximum
+               # divided by two if MAXFILES is not set.
                if test -z "$MAXFILES"; then
                        # just check if file-max is readable
                        if test -r /proc/sys/fs/file-max; then
-                               MAXFILES=$(( `cat /proc/sys/fs/file-max` / 2 ))
+                               MAXFILES=$((`cat /proc/sys/fs/file-max` / 2))
+                               # don't exceed upper limit of 2^20 for open
+                               # files on systems where file-max is > 2^21
+                               if test $MAXFILES -gt 1048576; then
+                                       MAXFILES=1048576
+                               fi
                        fi
                fi
                SYSCTL_MAXFILES="fs.file-max"