If I am manually starting everything works well. However, if I am starting with SMF, this will cause havoc and it will result in the process not starting properly some of the time.
I've looked at the code that is offending - bin/riak:185 :
# Make sure we have access to enough file descriptors
ULIMIT_S=$(prctl -n process.max-file-descriptor -t basic -P $$ | awk '/max-file-descriptor/ { print $3 }')
ULIMIT_H=$(prctl -n process.max-file-descriptor -t priv -P $$ | awk '/max-file-descriptor/ { print $3 }')
if [ ${ULIMIT_S} -lt ${ULIMIT_H} ]; then
echo "Trying to raise the file descriptor limit to maximum allowed."
prctl -n process.max-file-descriptor -t basic -v ${ULIMIT_H} $$ || true
fi
What's happening is the command executing for ULIMIT_S is returning a blank string. I believe this can be easily rectified by adding quotes in the conditional as so:
# Make sure we have access to enough file descriptors
ULIMIT_S=$(prctl -n process.max-file-descriptor -t basic -P $$ | awk '/max-file-descriptor/ { print $3 }')
ULIMIT_H=$(prctl -n process.max-file-descriptor -t priv -P $$ | awk '/max-file-descriptor/ { print $3 }')
if [ "${ULIMIT_S}" -lt "${ULIMIT_H}" ]; then
echo "Trying to raise the file descriptor limit to maximum allowed."
prctl -n process.max-file-descriptor -t basic -v ${ULIMIT_H} $$ || true
fi
This issue is similar to this issue: https://github.com/basho/node_package/issues/117
When starting the riak script as so:
If I am manually starting everything works well. However, if I am starting with SMF, this will cause havoc and it will result in the process not starting properly some of the time.
I've looked at the code that is offending - bin/riak:185 :
What's happening is the command executing for ULIMIT_S is returning a blank string. I believe this can be easily rectified by adding quotes in the conditional as so: