Ubuntu 14.04, ctdb 2.5.3, samba 4.1.11. CTDB is working with IP takeover between the 2 nodes. The machine is joined to the domain. Any help with the following errors would be most gratefully received. 1. connect to socket error: ctdb status 2014/08/16 15:32:03.248034 [23255]: client/ctdb_client.c:267 Failed to connect client socket to daemon. Errno:Connection refused(111) common/cmdline.c:156 Failed to connect to daemon 2014/08/16 15:32:03.261221 [23255]: Failed to init ctdb /etc/default/ctdb CTDB_NODES=/etc/ctdb/nodes CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses CTDB_MANAGES_SAMBA=yes CTDB_SYSLOG=yes CTDB_DEBUGLEVEL=NOTICE CTDB_SOCKET=/usr/local/var/run/ctdb/ctdbd.socket /usr/local/samba/etc/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 = /usr/local/var/run/ctdb/ctdbd.socket [users] path = /cluster/users read only = No ************** /etc/ctdb/50.samba ps aux|grep ctdbd root 25902 3.3 3.6 26772 18460 ? SLs 15:38 0:08 /usr/sbin/ctdbd --pidfile=/var/run/ctdb/ctdbd.pid --nlist=/etc/ctdb/nodes --socket=/usr/local/var/run/ctdb/ctdbd.socket --public-addresses=/etc/ctdb/public_addresses -d NOTICE --syslog root 25904 0.0 0.0 3012 396 ? S 15:38 0:00 /usr/sbin/ctdbd --pidfile=/var/run/ctdb/ctdbd.pid --nlist=/etc/ctdb/nodes --socket=/usr/local/var/run/ctdb/ctdbd.socket --public-addresses=/etc/ctdb/public_addresses -d NOTICE --syslog root 26048 0.6 0.1 13404 792 ? S 15:38 0:01 /usr/sbin/ctdbd --pidfile=/var/run/ctdb/ctdbd.pid --nlist=/etc/ctdb/nodes --socket=/usr/local/var/run/ctdb/ctdbd.socket --public-addresses=/etc/ctdb/public_addresses -d NOTICE --syslog ************** 2. CTDB does not start smbd but is started correctly (with response from ctdb) upon: sudo service smbd start /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:-""} CTDB_SERVICE_SMB=smbd ;; *) # Use redhat style as default: # CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb} # CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""} CTDB_SERVICE_SMB=smbd ;; esac service_name="smbd" loadconfig ctdb_setup_service_state_dir CTDB_SERVICE_SMB=smbd service_start () { # make sure samba is not already started echo $CTDB_SERVICE_SMB exit 1 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 *************** /etc/init.d/smbd #!/bin/sh ### BEGIN INIT INFO # Provides: smbd # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Should-Start: slapd cups # Should-Stop: slapd cups # Short-Description: start Samba SMB/CIFS daemon (smbd) ### END INIT INFO PIDDIR=/usr/local/samba/var/run SMBDPID=$PIDDIR/smbd.pid # clear conflicting settings from the environment unset TMPDIR # See if the daemons are there test -x /usr/local/samba/sbin/smbd || exit 0 . /lib/lsb/init-functions case $1 in start) if init_is_upstart; then exit 1 fi SERVER_ROLE=`samba-tool testparm --parameter-name="server role" 2>/dev/null | tail -1` if [ "$SERVER_ROLE" = "active directory domain controller" ]; then exit 0 fi log_daemon_msg "Starting SMB/CIFS daemon" smbd # Make sure we have our PIDDIR, even if it's on a tmpfs install -o root -g root -m 755 -d $PIDDIR if ! start-stop-daemon --start --quiet --oknodo --exec /usr/local/samba/sbin/smbd -- -D; then log_end_msg 1 exit 1 fi log_end_msg 0 ;; stop) if init_is_upstart; then exit 0 fi log_daemon_msg "Stopping SMB/CIFS daemon" smbd start-stop-daemon --stop --quiet --pidfile $SMBDPID # Wait a little and remove stale PID file sleep 1 if [ -f $SMBDPID ] && ! ps h `cat $SMBDPID` > /dev/null then # Stale PID file, remove it (should be removed by # smbd itself IMHO). rm -f $SMBDPID fi log_end_msg 0 ;; reload) log_daemon_msg "Reloading /etc/samba/smb.conf" smbd start-stop-daemon --stop --quiet --signal HUP --pidfile $SMBDPID log_end_msg 0 ;; restart|force-reload) if init_is_upstart; then exit 1 fi $0 stop sleep 1 $0 start ;; status) status_of_proc -p $SMBDPID smbd smbd exit $? ;; *) echo "Usage: /etc/init.d/smbd {start|stop|reload|restart|force-reload| status}" exit 1 ;; esac exit 0
Achim Gottinger
2014-Aug-16 16:09 UTC
[Samba] CTDB: Failed to connect client socket to daemon.
Am 16.08.2014 15:52, schrieb steve:> Ubuntu 14.04, ctdb 2.5.3, samba 4.1.11. CTDB is working with IP takeover > between the 2 nodes. The machine is joined to the domain. > > Any help with the following errors would be most gratefully received. > > 1. connect to socket error: > ctdb status > 2014/08/16 15:32:03.248034 [23255]: client/ctdb_client.c:267 Failed to > connect client socket to daemon. Errno:Connection refused(111) > common/cmdline.c:156 Failed to connect to daemonWhat's the output of ls -l /usr/local/var/run/ctdb/ ?> 2014/08/16 15:32:03.261221 [23255]: Failed to init ctdb > > /etc/default/ctdb > CTDB_NODES=/etc/ctdb/nodes > CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses > CTDB_MANAGES_SAMBA=yes > CTDB_SYSLOG=yes > CTDB_DEBUGLEVEL=NOTICE > CTDB_SOCKET=/usr/local/var/run/ctdb/ctdbd.socket > > > /usr/local/samba/etc/smb.conf > [global] > workgroup = ALTEAfrom /etc/defaults/ > realm = ALTEA.SITE > security = ADS > kerberos method = secrets and keytab > netbios name = SMBCLUSTER > disable netbios = Yes > clustering = Yes > ctdbd socket = /usr/local/var/run/ctdb/ctdbd.socket > [users] > path = /cluster/users > read only = No > > ************** > /etc/ctdb/50.samba > > ps aux|grep ctdbd > root 25902 3.3 3.6 26772 18460 ? SLs 15:38 > 0:08 /usr/sbin/ctdbd --pidfile=/var/run/ctdb/ctdbd.pid > --nlist=/etc/ctdb/nodes --socket=/usr/local/var/run/ctdb/ctdbd.socket > --public-addresses=/etc/ctdb/public_addresses -d NOTICE --syslog > root 25904 0.0 0.0 3012 396 ? S 15:38 > 0:00 /usr/sbin/ctdbd --pidfile=/var/run/ctdb/ctdbd.pid > --nlist=/etc/ctdb/nodes --socket=/usr/local/var/run/ctdb/ctdbd.socket > --public-addresses=/etc/ctdb/public_addresses -d NOTICE --syslog > root 26048 0.6 0.1 13404 792 ? S 15:38 > 0:01 /usr/sbin/ctdbd --pidfile=/var/run/ctdb/ctdbd.pid > --nlist=/etc/ctdb/nodes --socket=/usr/local/var/run/ctdb/ctdbd.socket > --public-addresses=/etc/ctdb/public_addresses -d NOTICE --syslog > ************** > > 2. CTDB does not start smbd but is started correctly (with response from > ctdb) upon: > sudo service smbd start > > /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:-""} > CTDB_SERVICE_SMB=smbd > ;; > *) > # Use redhat style as default: > # CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb} > # CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""} > CTDB_SERVICE_SMB=smbd > ;; > esac > > service_name="smbd" > > loadconfig > > ctdb_setup_service_state_dir > > CTDB_SERVICE_SMB=smbd > service_start () > { > # make sure samba is not already started > echo $CTDB_SERVICE_SMB > exit 1Is it intentional to echo "smbd" and exit here? Id verify maybe with an few echo statements that all the CTDB variables from /etc/default/ctdb get passed to that script. Read you copied the samba start script from an wiki can be it assumes variables in /etc/sysconfig/ctdb.