[Samba] CTDB: Failed to connect client socket to daemon.

Achim Gottinger achim at ag-web.biz
Mon Aug 18 07:39:57 MDT 2014


Am 18.08.2014 15:19, schrieb steve:
> On Mon, 2014-08-18 at 14:38 +0200, steve wrote:
>> On Mon, 2014-08-18 at 12:32 +0200, Achim Gottinger wrote:
>>> Am 18.08.2014 12:09, schrieb steve:
>>>> On Mon, 2014-08-18 at 11:31 +0200, Achim Gottinger wrote:
>>>>> Change service_name back to samba it
>>>>> Is Usedom by ctdb
>>>> OK. Thanks again. Getting closer. Changed smbd to samba:
>>>> sudo ctdb eventscript 50.samba startup
>>>> 2014/08/18 11:57:16.958275 [ 9029]: Invalid arguments
>>> First sorry for the typos, iphone autocorrection got me.
>> No problem. Thanks for your time and trouble.
>>> I assue you want to give ctdbd control over samba.
>>> https://ctdb/samba.org/samba.html
>> Yes.
>> ATM, we have both nodes live. But evidently that's very bad. We must
>> have only one node up at a time it seems.
>>
>>> Do you have CTDB_MANAGES_SAMBA="yes" in /etc/default/ctdb?
>> Yes:
>>   /etc/default/ctdb
>>
>> CTDB_NODES=/etc/ctdb/nodes
>> CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
>> CTDB_MANAGES_SAMBA=yes
>> CTDB_SYSLOG=yes
>> CTDB_DEBUGLEVEL=3
>> CTDB_SERVICE_SMB=smbd
>>
>>> If so ctdb calls /etc/ctdb/event.d/50.samba. Are you sure you do not
>>> have exit 1 iin the service_start function any longer?
>>>
>>> Seen you enabled the script with
>>>
>>> ctdb enablescript samba
>> It was:
>> sudo ctdb enablescript 50.samba
>>
>>> I guess you can trigger an start with:
>>>
>>> ctdb -n 0 disable
>>> ctdb -n 0 enable
>> done.
>>> And
>>>
>>> ctdb scriptstatus
>> gives us:
>> sudo ctdb scriptstatus
>> monitor cycle never run
>>> should show if samba is up and running under ctdb control.
>> but:
>>   sudo ctdb eventscript 50.samba startup
>> 2014/08/18 14:33:41.263631 [12631]: Invalid arguments
>>
>> here is /etc/ctdb/events.d/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:-smbd}
>> 		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
>>
>>      nice_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
>>
>>>   You should start smbd/nmbd/winbindd instead for domain member and
>>>> standalone file server tasks
>>>>
>>> This is differnet because you call smbd and sometimes samba. :-)
>>>
>> Yes. Sorry. Stupid of us!
>>
>>
> ##############################################
> OK, we simplified the start and stop part of 50.samba to:
> service_start ()
> {
> service smbd start
> }
> service_stop ()
> {
> sudo service smbd stop
> }
>
> And the log changes to:
> Aug 18 15:09:06 uc1 ctdbd: 50.samba: ERROR: samba tcp port 445 is not
> responding
> Aug 18 15:09:06 uc1 ctdbd: server/eventscript.c:496 Eventscript monitor
> finished with state 1
>
> netstat shows nothing on 445 nor 139
>
> We can however start samba manually, whereupon the 445 error disappears.
> Presumably because then it _is_ responding?
>
> Still, if smbd is not up at the beginning, ctdb will not start it.
> Are we any closer?
>
>
>
The sytax to start ctdb managed services is

ctdb eventscrip startup

or to stop em

ctdb eventscript shutdown

I also get these "samba tcp port 445 is not responding" messages if i 
shutdown eventscripts but they disappear after a few seconds.

  ctdb scriptstatus
19 scripts were executed last monitor cycle
00.ctdb              Status:OK    Duration:0.017 Mon Aug 18 15:39:05 2014
01.reclock           Status:OK    Duration:0.038 Mon Aug 18 15:39:05 2014
10.interface         Status:OK    Duration:0.066 Mon Aug 18 15:39:05 2014
11.natgw             Status:OK    Duration:0.013 Mon Aug 18 15:39:05 2014
11.routing           Status:OK    Duration:0.013 Mon Aug 18 15:39:05 2014
13.per_ip_routing    Status:OK    Duration:0.013 Mon Aug 18 15:39:05 2014
20.multipathd        Status:DISABLED
31.clamd             Status:DISABLED
40.fs_use            Status:DISABLED
40.vsftpd            Status:OK    Duration:0.013 Mon Aug 18 15:39:05 2014
41.httpd             Status:OK    Duration:0.013 Mon Aug 18 15:39:05 2014
49.winbind           Status:OK    Duration:0.017 Mon Aug 18 15:39:05 2014
50.samba             Status:OK    Duration:0.147 Mon Aug 18 15:39:05 2014
60.ganesha           Status:DISABLED
60.nfs               Status:OK    Duration:0.017 Mon Aug 18 15:39:05 2014
62.cnfs              Status:OK    Duration:0.017 Mon Aug 18 15:39:05 2014
70.iscsi             Status:OK    Duration:0.013 Mon Aug 18 15:39:05 2014
91.lvs               Status:OK    Duration:0.013 Mon Aug 18 15:39:05 2014
99.timeout           Status:DISABLED



More information about the samba mailing list