[Samba] CTDB: Failed to connect client socket to daemon.
steve
steve at steve-ss.com
Mon Aug 18 08:59:55 MDT 2014
On Mon, 2014-08-18 at 15:39 +0200, Achim Gottinger wrote:
> 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
Hi
And does smbd get started?
Here, it still doesn't:
sudo ctdb eventscript startup
2014/08/18 16:37:51.329851 [ 5327]: Running eventscripts with arguments
"startup" on node 0
sudo ctdb scriptstatus
13 scripts were executed last monitor cycle
00.ctdb Status:OK Duration:0.142 Mon Aug 18 16:37:55
2014
01.reclock Status:OK Duration:0.109 Mon Aug 18 16:37:56
2014
10.interface Status:OK Duration:0.442 Mon Aug 18 16:37:56
2014
11.routing Status:OK Duration:0.062 Mon Aug 18 16:37:56
2014
11.natgw Status:OK Duration:0.054 Mon Aug 18 16:37:56
2014
13.per_ip_routing Status:OK Duration:0.058 Mon Aug 18 16:37:56
2014
20.multipathd Status:DISABLED
31.clamd Status:DISABLED
40.vsftpd Status:OK Duration:0.058 Mon Aug 18 16:37:56
2014
40.fs_use Status:DISABLED
41.httpd Status:OK Duration:0.056 Mon Aug 18 16:37:56
2014
49.winbind Status:DISABLED
50.samba Status:ERROR Duration:0.604 Mon Aug 18 16:37:56
2014
OUTPUT:ERROR: samba tcp port 445 is not responding
Still getting the 445 error. This is with the original 50.samba without
our simplifications, but the same with the simplifications.
Disabling the eventscript makes no difference to the 445 error:
Aug 18 16:54:47 uc1 ctdbd: server/eventscript.c:859 Starting eventscript
shutdown
Aug 18 16:54:48 uc1 ctdbd: server/eventscript.c:496 Eventscript shutdown
finished with state 0
Aug 18 16:54:48 uc1 ctdbd: Monitoring has been enabled
Is there any way we could ignore the 445 error and go ahead anyway?
Once we start smbd manually, the error disappears. It just won't start
to begin with.
More information about the samba
mailing list