Ubuntu 14.04, ctdb 2.5.1 from the ubuntu package. samba 4.1.11 with
cluster support from source.
Error upon startup only. Restarting ctdb on that node clears the error.
The other node with the same config is OK. Any ideas?
Cheers,
Steve
smb.conf
[global]
workgroup = ALTEA
realm = ALTEA.SITE
security = ADS
kerberos method = secrets and keytab
netbios name = SMBCLUSTER
disable netbios = Yes
clustering = Yes
ctdbd socket = /var/lib/run/ctdb/ctdbd.socket
pid director = /var/run/samba
[users]
path = /cluster/users
read only = No
[profiles]
path = /cluster/profiles
read only = No
[shared]
path = /cluster/shared
force create mode = 0770
read only = No
50.samba
#!/bin/sh
# ctdb event script for Samba
[ -n "$CTDB_BASE" ] || \
export CTDB_BASE=$(cd -P $(dirname "$0") ; dirname
"$PWD")
. $CTDB_BASE/functions
detect_init_style
case $CTDB_INIT_STYLE in
suse)
CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb}
;;
debian)
CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-samba}
CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
;;
*)
# Use redhat style as default:
CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
;;
esac
service_name="samba"
loadconfig
ctdb_setup_service_state_dir
service_start ()
{
# make sure samba is not already started
service "$CTDB_SERVICE_SMB" stop > /dev/null 2>&1
if [ -n "$CTDB_SERVICE_NMB" ] ; then
service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1
fi
killall -0 -q smbd && {
sleep 1
# make absolutely sure samba is dead
killall -q -9 smbd
}
killall -0 -q nmbd && {
sleep 1
# make absolutely sure samba is dead
killall -q -9 nmbd
}
# start Samba service. Start it reniced, as under very heavy load
# the number of smbd processes will mean that it leaves few cycles
# for anything else
net serverid wipe
if [ -n "$CTDB_SERVICE_NMB" ] ; then
nice_service "$CTDB_SERVICE_NMB" start || die "Failed to start
nmbd"
fi
service "$CTDB_SERVICE_SMB" start || die "Failed to start
samba"
}
service_stop ()
{
service "$CTDB_SERVICE_SMB" stop
if [ -n "$CTDB_SERVICE_NMB" ] ; then
service "$CTDB_SERVICE_NMB" stop
fi
}
######################################################################
# Show the testparm output using a cached smb.conf to avoid delays due
# to registry access.
smbconf_cache="$service_state_dir/smb.conf.cache"
testparm_foreground_update ()
{
_timeout="$1"
if ! _out=$(timeout $_timeout testparm -v -s 2>/dev/null) ; then
if [ -f "$smbconf_cache" ] ; then
echo "WARNING: smb.conf cache update failed - using old cache
file"
return 1
else
die "ERROR: smb.conf cache create failed"
fi
fi
_tmpfile="${smbconf_cache}.$$"
# Patterns to exclude...
pat='^[[:space:]]+(registry[[:space:]]+shares|include|copy|
winbind[[:space:]]+separator)[[:space:]]+='
echo "$_out" | grep -Ev "$pat" >"$_tmpfile"
mv "$_tmpfile" "$smbconf_cache" # atomic
return 0
}
testparm_background_update ()
{
_timeout="$1"
testparm_foreground_update $_timeout >/dev/null 2>&1 </dev/null
&
}
testparm_cat ()
{
testparm -s "$smbconf_cache" "$@" 2>/dev/null
}
list_samba_shares ()
{
testparm_cat |
sed -n -e 's@^[[:space:]]*path[[:space:]]*=[[:space:]]@@p' |
sed -e 's/"//g'
}
list_samba_ports ()
{
testparm_cat --parameter-name="smb ports" |
sed -e 's@,@ @g'
}
###########################
ctdb_start_stop_service
is_ctdb_managed_service || exit 0
###########################
case "$1" in
startup)
ctdb_service_start
;;
shutdown)
ctdb_service_stop
;;
monitor)
testparm_foreground_update 10
ret=$?
smb_ports="$CTDB_SAMBA_CHECK_PORTS"
if [ -z "$smb_ports" ] ; then
smb_ports=$(list_samba_ports)
[ -n "$smb_ports" ] || die "Failed to set smb ports"
fi
ctdb_check_tcp_ports $smb_ports || exit $?
if [ "$CTDB_SAMBA_SKIP_SHARE_CHECK" != "yes" ] ; then
list_samba_shares | ctdb_check_directories || exit $?
fi
if [ $ret -ne 0 ] ; then
testparm_background_update 10
fi
;;
*)
ctdb_standard_event_handler "$@"
;;
esac
exit 0
Davor Vusir
2014-Aug-23 18:10 UTC
[Samba] CTDB 50.samba: ERROR: smb.conf cache create failed
** Skickat fr?n mobilusken! ** Den 23 aug 2014 15:50 skrev "steve" <steve at steve-ss.com>:> > Ubuntu 14.04, ctdb 2.5.1 from the ubuntu package. samba 4.1.11 with > cluster support from source. > > Error upon startup only. Restarting ctdb on that node clears the error. > The other node with the same config is OK. Any ideas? > Cheers, > Steve > > smb.conf > [global] > workgroup = ALTEA > realm = ALTEA.SITE > security = ADS > kerberos method = secrets and keytab > netbios name = SMBCLUSTER > disable netbios = Yes > clustering = Yes > ctdbd socket = /var/lib/run/ctdb/ctdbd.socket > pid director = /var/run/sambapid director -> pid directory?> [users] > path = /cluster/users > read only = No > [profiles] > path = /cluster/profiles > read only = No > [shared] > path = /cluster/shared > force create mode = 0770 > read only = No > > 50.samba > #!/bin/sh > # ctdb event script for Samba > > [ -n "$CTDB_BASE" ] || \ > export CTDB_BASE=$(cd -P $(dirname "$0") ; dirname "$PWD") > > . $CTDB_BASE/functions > > detect_init_style > > case $CTDB_INIT_STYLE in > suse) > CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb} > CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb} > ;; > debian) > CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-samba} > CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""} > ;; > *) > # Use redhat style as default: > > CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb} > CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""} > ;; > esac > > service_name="samba" > > loadconfig > > ctdb_setup_service_state_dir > > service_start () > { > # make sure samba is not already started > service "$CTDB_SERVICE_SMB" stop > /dev/null 2>&1 > if [ -n "$CTDB_SERVICE_NMB" ] ; then > service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1 > fi > killall -0 -q smbd && { > sleep 1 > # make absolutely sure samba is dead > killall -q -9 smbd > } > killall -0 -q nmbd && { > sleep 1 > # make absolutely sure samba is dead > killall -q -9 nmbd > } > > # start Samba service. Start it reniced, as under very heavy load > # the number of smbd processes will mean that it leaves few cycles > # for anything else > net serverid wipe > > if [ -n "$CTDB_SERVICE_NMB" ] ; then > nice_service "$CTDB_SERVICE_NMB" start || die "Failed to startnmbd"> fi > > service "$CTDB_SERVICE_SMB" start || die "Failed to start samba" > } > > service_stop () > { > service "$CTDB_SERVICE_SMB" stop > if [ -n "$CTDB_SERVICE_NMB" ] ; then > service "$CTDB_SERVICE_NMB" stop > fi > } > > ###################################################################### > # Show the testparm output using a cached smb.conf to avoid delays due > # to registry access. > > smbconf_cache="$service_state_dir/smb.conf.cache" > > testparm_foreground_update () > { > _timeout="$1" > > if ! _out=$(timeout $_timeout testparm -v -s 2>/dev/null) ; then > if [ -f "$smbconf_cache" ] ; then > echo "WARNING: smb.conf cache update failed - using old cachefile"> return 1 > else > die "ERROR: smb.conf cache create failed" > fi > fi > > _tmpfile="${smbconf_cache}.$$" > # Patterns to exclude... > pat='^[[:space:]]+(registry[[:space:]]+shares|include|copy| > winbind[[:space:]]+separator)[[:space:]]+=' > echo "$_out" | grep -Ev "$pat" >"$_tmpfile" > mv "$_tmpfile" "$smbconf_cache" # atomic > > return 0 > } > > testparm_background_update () > { > _timeout="$1" > > testparm_foreground_update $_timeout >/dev/null 2>&1 </dev/null & > } > > testparm_cat () > { > testparm -s "$smbconf_cache" "$@" 2>/dev/null > } > > list_samba_shares () > { > testparm_cat | > sed -n -e 's@^[[:space:]]*path[[:space:]]*=[[:space:]]@@p' | > sed -e 's/"//g' > } > > list_samba_ports () > { > testparm_cat --parameter-name="smb ports" | > sed -e 's@,@ @g' > } > > ########################### > > ctdb_start_stop_service > > is_ctdb_managed_service || exit 0 > > ########################### > > case "$1" in > startup) > ctdb_service_start > ;; > > shutdown) > ctdb_service_stop > ;; > > monitor) > testparm_foreground_update 10 > ret=$? > > smb_ports="$CTDB_SAMBA_CHECK_PORTS" > if [ -z "$smb_ports" ] ; then > smb_ports=$(list_samba_ports) > [ -n "$smb_ports" ] || die "Failed to set smb ports" > fi > ctdb_check_tcp_ports $smb_ports || exit $? > > if [ "$CTDB_SAMBA_SKIP_SHARE_CHECK" != "yes" ] ; then > list_samba_shares | ctdb_check_directories || exit $? > fi > > if [ $ret -ne 0 ] ; then > testparm_background_update 10 > fi > ;; > > *) > ctdb_standard_event_handler "$@" > ;; > esac > exit 0 > > > > -- > To unsubscribe from this list go to the following URL and read the > instructions: https://lists.samba.org/mailman/options/samba
Achim Gottinger
2014-Aug-23 19:13 UTC
[Samba] CTDB 50.samba: ERROR: smb.conf cache create failed
Am 23.08.2014 15:49, schrieb steve:> Ubuntu 14.04, ctdb 2.5.1 from the ubuntu package. samba 4.1.11 with > cluster support from source. > > Error upon startup only. Restarting ctdb on that node clears the error. > The other node with the same config is OK. Any ideas? > Cheers, > Steve > > smb.conf > [global] > workgroup = ALTEA > realm = ALTEA.SITE > security = ADS > kerberos method = secrets and keytab > netbios name = SMBCLUSTER > disable netbios = Yes > clustering = Yes > ctdbd socket = /var/lib/run/ctdb/ctdbd.socket > pid director = /var/run/samba > [users] > path = /cluster/users > read only = No > [profiles] > path = /cluster/profiles > read only = No > [shared] > path = /cluster/shared > force create mode = 0770 > read only = NoAdded an modification, so it shows the full path for the file causing the error.> 50.samba > #!/bin/sh > # ctdb event script for Samba > > [ -n "$CTDB_BASE" ] || \ > export CTDB_BASE=$(cd -P $(dirname "$0") ; dirname "$PWD") > > . $CTDB_BASE/functions > > detect_init_style > > case $CTDB_INIT_STYLE in > suse) > CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb} > CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb} > ;; > debian) > CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-samba} > CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""} > ;; > *) > # Use redhat style as default: > > CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb} > CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""} > ;; > esac > > service_name="samba" > > loadconfig > > ctdb_setup_service_state_dir > > service_start () > { > # make sure samba is not already started > service "$CTDB_SERVICE_SMB" stop > /dev/null 2>&1 > if [ -n "$CTDB_SERVICE_NMB" ] ; then > service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1 > fi > killall -0 -q smbd && { > sleep 1 > # make absolutely sure samba is dead > killall -q -9 smbd > } > killall -0 -q nmbd && { > sleep 1 > # make absolutely sure samba is dead > killall -q -9 nmbd > } > > # start Samba service. Start it reniced, as under very heavy load > # the number of smbd processes will mean that it leaves few cycles > # for anything else > net serverid wipe > > if [ -n "$CTDB_SERVICE_NMB" ] ; then > nice_service "$CTDB_SERVICE_NMB" start || die "Failed to start nmbd" > fi > > service "$CTDB_SERVICE_SMB" start || die "Failed to start samba" > } > > service_stop () > { > service "$CTDB_SERVICE_SMB" stop > if [ -n "$CTDB_SERVICE_NMB" ] ; then > service "$CTDB_SERVICE_NMB" stop > fi > } > > ###################################################################### > # Show the testparm output using a cached smb.conf to avoid delays due > # to registry access. > > smbconf_cache="$service_state_dir/smb.conf.cache" > > testparm_foreground_update () > { > _timeout="$1" > > if ! _out=$(timeout $_timeout testparm -v -s 2>/dev/null) ; then > if [ -f "$smbconf_cache" ] ; then > echo "WARNING: smb.conf cache update failed - using old cache file" > return 1 > else > die "ERROR: smb.conf cache create failed"die "ERROR: smb.conf cache create failed at $smbconf_cache"> fi > fi > > _tmpfile="${smbconf_cache}.$$" > # Patterns to exclude... > pat='^[[:space:]]+(registry[[:space:]]+shares|include|copy| > winbind[[:space:]]+separator)[[:space:]]+=' > echo "$_out" | grep -Ev "$pat" >"$_tmpfile" > mv "$_tmpfile" "$smbconf_cache" # atomic > > return 0 > } > > testparm_background_update () > { > _timeout="$1" > > testparm_foreground_update $_timeout >/dev/null 2>&1 </dev/null & > } > > testparm_cat () > { > testparm -s "$smbconf_cache" "$@" 2>/dev/null > } > > list_samba_shares () > { > testparm_cat | > sed -n -e 's@^[[:space:]]*path[[:space:]]*=[[:space:]]@@p' | > sed -e 's/"//g' > } > > list_samba_ports () > { > testparm_cat --parameter-name="smb ports" | > sed -e 's@,@ @g' > } > > ########################### > > ctdb_start_stop_service > > is_ctdb_managed_service || exit 0 > > ########################### > > case "$1" in > startup) > ctdb_service_start > ;; > > shutdown) > ctdb_service_stop > ;; > > monitor) > testparm_foreground_update 10 > ret=$? > > smb_ports="$CTDB_SAMBA_CHECK_PORTS" > if [ -z "$smb_ports" ] ; then > smb_ports=$(list_samba_ports) > [ -n "$smb_ports" ] || die "Failed to set smb ports" > fi > ctdb_check_tcp_ports $smb_ports || exit $? > > if [ "$CTDB_SAMBA_SKIP_SHARE_CHECK" != "yes" ] ; then > list_samba_shares | ctdb_check_directories || exit $? > fi > > if [ $ret -ne 0 ] ; then > testparm_background_update 10 > fi > ;; > > *) > ctdb_standard_event_handler "$@" > ;; > esac > exit 0 > > >