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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions