Skip to content

Riak start emitts error when starting on SmartOS #177

@dekobon

Description

@dekobon

This issue is similar to this issue: #117

When starting the riak script as so:

[root@riak-02-staging ~]# riak start
***
Warning: please use 'svcadm enable riak' instead
***
/opt/local/sbin/riak[185]: [: argument expected
[root@riak-02-staging ~]# riak ping
pong

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions