[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: openldap service stop cause database corruption



> I don't know about CentOS, but if it's anything like Redhat, the
> system provided init scripts are very hostile to processes that don't
> shut down fast enough.
> 
> The killproc() function will send a TERM, wait 100k microseconds, then
> send a KILL.
> 
> You're running a large process on a low-memory machine.  I strongly
> suspect CentOS isn't giving slapd enough time to shut down properly.
> 
> Instead of using the system scripts, try sending a plain kill to slapd
> and timing how long it takes to shut down.  If it's more than 100
> seconds, you'll either need to add memory (I'd recommend that anyway)
> or stop using the CentOS init scripts to start and stop OpenLDAP.

I tried modifying stop script adding 30 seconds sleep after killproc but the problem remains. Here is the stop script:

function stop() {
        # Stop daemons.
        prog=`basename ${slapd}`
        echo -n $"Stopping $prog: "
        killproc ${slapd}
        sleep 30
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ]; then
            if grep -q "^replogfile" /etc/openldap/slapd.conf; then
                prog=`basename ${slurpd}`
                echo -n $"Stopping $prog: "
                killproc ${slurpd}
                sleep 30
                RETVAL=$?
                echo
            fi
        fi
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ldap /var/run/slapd.args
        return $RETVAL
}