[Samba] CTDB 50.samba: ERROR: smb.conf cache create failed

steve steve at steve-ss.com
Sun Aug 24 00:05:39 MDT 2014


On Sat, 2014-08-23 at 21:13 +0200, Achim Gottinger wrote:
> 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 = No
> Added 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"

Hi Achim
You should become a private detective. You'd make a killing:)

Aug 24 07:37:38 uc2 ctdbd: 50.samba: ERROR: smb.conf cache create failed
@ /var/ctdb/state/samba/smb.conf.cache

and:
 ls -l /var/ctdb/state
total 12
drwxr-xr-x 2 root root 4096 ago 24 07:37 ctdb
drwxr-xr-x 3 root root 4096 ago 24 07:37 gpfs
-rw-r--r-- 1 root root    0 ago 24 07:37 interface_modify_bond0.flock
drwxr-xr-x 2 root root 4096 ago 24 07:37 samba

ls -l /var/ctdb/state/samba
total 0

Nothing at /var/lib/lib/ctdb/ either:
 ls -l /var/lib/lib/ctdb
total 14424
-rw-r--r-- 1 root root 1204224 ago 24 07:37 brlock.tdb.1
-rw------- 1 root root 1507328 ago 24 07:37 dbwrap_watchers.tdb.1
-rw------- 1 root root 1507328 ago 24 07:37 g_lock.tdb.1
-rw-r--r-- 1 root root 1204224 ago 24 07:37 locking.tdb.1
-rw-r--r-- 1 root root 1204224 ago 24 07:37 notify_index.tdb.1
drwx------ 2 root root    4096 ago 24 07:37 persistent
-rw-r--r-- 1 root root 1507328 ago 24 07:42 printer_list.tdb.1
-rw-r--r-- 1 root root 1507328 ago 24 07:42 serverid.tdb.1
-rw------- 1 root root 1204224 ago 24 07:37 smbXsrv_open_global.tdb.1
-rw------- 1 root root 1204224 ago 24 07:37 smbXsrv_session_global.tdb.1
-rw------- 1 root root 1204224 ago 24 07:37 smbXsrv_tcon_global.tdb.1
-rw------- 1 root root 1507328 ago 24 07:37 smbXsrv_version_global.tdb.1
drwx------ 2 root root    4096 ago 24 07:34 state

ls -l /var/lib/lib/ctdb/state
total 496
-rw------- 1 root root    696 ago 24 07:30 persistent_health.tdb.1
-rw------- 1 root root 503808 ago 24 07:34 recdb.tdb.1

On the other node, the cache _is_ created:
 ls -l /var/ctdb/state/samba
total 12
-rw-r--r-- 1 root root 9332 ago 24 07:50 smb.conf.cache

and contains:

 cat /var/ctdb/state/samba/smb.conf.cache
[global]
	dos charset = CP850
	unix charset = UTF-8
	workgroup = ALTEA
	realm = ALTEA.SITE
	netbios name = SMBCLUSTER
	netbios aliases = 
	netbios scope = 
	server string = Samba 4.1.6-Ubuntu
	interfaces = 
	bind interfaces only = No
	server role = auto
	security = ADS
	auth methods = 
	encrypt passwords = Yes
	client schannel = Auto
	server schannel = Auto
	allow trusted domains = Yes
	map to guest = Never
	null passwords = No
	obey pam restrictions = No
	password server = *
	smb passwd file = /etc/samba/smbpasswd
	private dir = /var/lib/samba/private
	passdb backend = tdbsam
	algorithmic rid base = 1000
	root directory = 
	guest account = nobody
	enable privileges = Yes
	pam password change = No
	passwd program = 
	passwd chat = *new*password* %n
 *new*password* %n
 *changed*
	passwd chat debug = No
	passwd chat timeout = 2
	check password script = 
	username map = 
	username level = 0
	unix password sync = No
	restrict anonymous = 0
	lanman auth = No
	ntlm auth = Yes
	client NTLMv2 auth = Yes
	client lanman auth = No
	client plaintext auth = No
	client use spnego principal = No
	preload modules = 
	dedicated keytab file = 
	kerberos method = secrets and keytab
	map untrusted to domain = No
	log level = 2
	syslog = 1
	syslog only = No
	log file = 
	max log size = 5000
	debug timestamp = Yes
	debug prefix timestamp = No
	debug hires timestamp = Yes
	debug pid = No
	debug uid = No
	debug class = No
	enable core files = Yes
	smb ports = 445, 139
	large readwrite = Yes
	server max protocol = SMB3
	server min protocol = LANMAN1
	client max protocol = NT1
	client min protocol = CORE
	unicode = Yes
	min receivefile size = 0
	read raw = Yes
	write raw = Yes
	disable netbios = Yes
	reset on zero vc = No
	log writeable files on exit = No
	defer sharing violations = Yes
	nt pipe support = Yes
	nt status support = Yes
	max mux = 50
	max xmit = 16644
	name resolve order = lmhosts, wins, host, bcast
	max ttl = 259200
	max wins ttl = 518400
	min wins ttl = 21600
	time server = No
	unix extensions = Yes
	use spnego = Yes
	client signing = default
	server signing = default
	client use spnego = Yes
	client ldap sasl wrapping = plain
	enable asu support = No
	svcctl list = 
	cldap port = 0
	dgram port = 0
	nbt port = 0
	krb5 port = 0
	kpasswd port = 0
	web port = 0
	rpc big endian = No
	getwd cache = Yes
	keepalive = 300
	lpq cache time = 30
	max smbd processes = 0
	max disk size = 0
	max open files = 16384
	socket options = TCP_NODELAY
	use mmap = Yes
	use ntdb = No
	hostname lookups = No
	name cache timeout = 660
	ctdbd socket = /var/lib/run/ctdb/ctdbd.socket
	cluster addresses = 
	clustering = Yes
	ctdb timeout = 0
	ctdb locktime warn threshold = 0
	smb2 max read = 1048576
	smb2 max write = 1048576
	smb2 max trans = 1048576
	smb2 max credits = 8192
	load printers = Yes
	printcap cache time = 750
	printcap name = 
	cups server = 
	cups encrypt = No
	cups connection timeout = 30
	iprint server = 
	disable spoolss = No
	addport command = 
	enumports command = 
	addprinter command = 
	deleteprinter command = 
	show add printer wizard = Yes
	os2 driver map = 
	mangling method = hash2
	mangle prefix = 1
	max stat cache size = 256
	stat cache = Yes
	machine password timeout = 604800
	add user script = 
	rename user script = 
	delete user script = 
	add group script = 
	delete group script = 
	add user to group script = 
	delete user from group script = 
	set primary group script = 
	add machine script = 
	shutdown script = 
	abort shutdown script = 
	username map script = 
	username map cache time = 0
	logon script = 
	logon path = \%N\%U\profile
	logon drive = 
	logon home = \%N\%U
	domain logons = No
	init logon delayed hosts = 
	init logon delay = 100
	os level = 20
	lm announce = Auto
	lm interval = 60
	preferred master = No
	local master = Yes
	domain master = Auto
	browse list = Yes
	enhanced browsing = Yes
	dns proxy = Yes
	wins proxy = No
	wins server = 
	wins support = No
	wins hook = 
	lock spin time = 200
	oplock break wait time = 0
	ldap admin dn = 
	ldap delete dn = No
	ldap group suffix = 
	ldap idmap suffix = 
	ldap machine suffix = 
	ldap passwd sync = no
	ldap replication sleep = 1000
	ldap suffix = 
	ldap ssl = start tls
	ldap ssl ads = No
	ldap deref = auto
	ldap follow referral = Auto
	ldap timeout = 15
	ldap connection timeout = 2
	ldap page size = 1024
	ldap user suffix = 
	ldap debug level = 0
	ldap debug threshold = 10
	eventlog list = 
	add share command = 
	change share command = 
	delete share command = 
	preload = 
	lock directory = /var/run/samba
	state directory = /var/lib/samba
	cache directory = /var/cache/samba
	pid directory = /var/run/samba
	ntp signd socket directory = 
	utmp directory = 
	wtmp directory = 
	utmp = No
	default service = 
	message command = 
	get quota command = 
	set quota command = 
	remote announce = 
	remote browse sync = 
	nbt client socket address = 0.0.0.0
	nmbd bind explicit broadcast = Yes
	homedir map = auto.home
	afs username map = 
	afs token lifetime = 604800
	log nt token command = 
	NIS homedir = No
	usershare allow guests = No
	usershare max shares = 100
	usershare owner only = Yes
	usershare path = /var/lib/samba/usershares
	usershare prefix allow list = 
	usershare prefix deny list = 
	usershare template share = 
	async smb echo handler = No
	panic action = 
	perfcount module = 
	host msdfs = Yes
	passdb expand explicit = No
	idmap backend = tdb
	idmap cache time = 604800
	idmap negative cache time = 120
	idmap uid = 
	idmap gid = 
	template homedir = /home/%D/%U
	template shell = /bin/false
	winbind cache time = 300
	winbind reconnect delay = 30
	winbind max clients = 200
	winbind enum users = No
	winbind enum groups = No
	winbind use default domain = No
	winbind trusted domains only = No
	winbind nested groups = Yes
	winbind expand groups = 1
	winbind nss info = template
	winbind refresh tickets = No
	winbind offline logon = No
	winbind normalize names = No
	winbind rpc only = No
	create krb5 conf = Yes
	ncalrpc dir = /var/run/samba/ncalrpc
	winbind max domain connections = 1
	winbindd socket directory = 
	winbindd privileged socket directory = 
	winbind sealed pipes = No
	allow dns updates = disabled
	dns forwarder = 
	dns update command = 
	nsupdate command = 
	rndc command = 
	multicast dns register = Yes
	samba kcc command = 
	server services = 
	dcerpc endpoint servers = 
	spn update command = 
	share backend = 
	tls enabled = No
	tls keyfile = 
	tls certfile = 
	tls cafile = 
	tls crlfile = 
	tls dh params file = 
	idmap config * : backend = tdb
	comment = 
	path = 
	username = 
	invalid users = 
	valid users = 
	admin users = 
	read list = 
	write list = 
	force user = 
	force group = 
	read only = Yes
	acl check permissions = Yes
	acl group control = No
	acl map full control = Yes
	acl allow execute always = No
	create mask = 0744
	force create mode = 00
	directory mask = 0755
	force directory mode = 00
	force unknown acl user = No
	inherit permissions = No
	inherit acls = No
	inherit owner = No
	guest only = No
	administrative share = No
	guest ok = No
	only user = No
	hosts allow = 
	hosts deny = 
	allocation roundup size = 1048576
	aio read size = 0
	aio write size = 0
	aio write behind = 
	ea support = No
	nt acl support = Yes
	profile acls = No
	map acl inherit = No
	afs share = No
	smb encrypt = default
	durable handles = Yes
	block size = 1024
	change notify = Yes
	directory name cache size = 100
	kernel change notify = Yes
	max connections = 0
	min print space = 0
	strict allocate = No
	strict sync = No
	sync always = No
	use sendfile = No
	write cache size = 0
	max reported print jobs = 0
	max print jobs = 1000
	printable = No
	print notify backchannel = Yes
	print ok = No
	printing = cups
	cups options = 
	print command = 
	lpq command = %p
	lprm command = 
	lppause command = 
	lpresume command = 
	queuepause command = 
	queueresume command = 
	printer name = 
	use client driver = No
	default devmode = Yes
	force printername = No
	printjob username = %U
	default case = lower
	case sensitive = Auto
	preserve case = Yes
	short preserve case = Yes
	mangling char = ~
	hide dot files = Yes
	hide special files = No
	hide unreadable = No
	hide unwriteable files = No
	delete veto files = No
	veto files = 
	hide files = 
	veto oplock files = 
	map archive = Yes
	map hidden = No
	map system = No
	map readonly = yes
	mangled names = Yes
	store dos attributes = No
	dmapi support = No
	browseable = Yes
	access based share enum = No
	blocking locks = Yes
	csc policy = manual
	fake oplocks = No
	kernel oplocks = No
	kernel share modes = Yes
	locking = Yes
	oplocks = Yes
	level2 oplocks = Yes
	oplock contention limit = 2
	posix locking = Yes
	strict locking = Auto
	dfree cache time = 0
	dfree command = 
	preexec = 
	preexec close = No
	postexec = 
	root preexec = 
	root preexec close = No
	root postexec = 
	available = Yes
	volume = 
	fstype = NTFS
	wide links = No
	follow symlinks = Yes
	dont descend = 
	magic script = 
	magic output = 
	delete readonly = No
	dos filemode = No
	dos filetimes = Yes
	dos filetime resolution = No
	fake directory create times = No
	vfs objects = 
	msdfs root = No
	msdfs proxy = 
	ntvfs handler = 

[users]
	path = /cluster/users
	read only = No

[profiles]
	path = /cluster/profiles
	read only = No

[shared]
	path = /cluster/shared
	read only = No
	force create mode = 0770


OK, that looks like testparm -v
so, 
testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit
(16384)
Processing section "[users]"
Processing section "[profiles]"
Processing section "[shared]"
Loaded services file OK.
ERROR: state directory /var/lib/samba does not exist
Server role: ROLE_DOMAIN_MEMBER

So:
mkdir -p /var/lib/samba

and immediately:
Aug 24 07:57:44 uc2 ctdbd: monitor event OK - node re-enabled
Aug 24 07:57:44 uc2 ctdbd: Node became HEALTHY. Ask recovery master 0 to
perform ip reallocation
Aug 24 07:57:44 uc2 ctdbd: recoverd:Node 1 has changed flags - now 0x0
was 0x2
Aug 24 07:57:45 uc2 ctdbd: recoverd:Disabling takeover runs for 60
seconds
Aug 24 07:57:47 uc2 ctdbd: Takeover of IP 192.168.1.81/24 on interface
bond0
Aug 24 07:57:49 uc2 ntpd[2497]: Listen normally on 13 bond0 192.168.1.81
UDP 123
Aug 24 07:57:49 uc2 ntpd[2497]: peers refreshed
Aug 24 07:57:49 uc2 ntpd[2497]: new interface(s) found: waking up
resolver
Aug 24 07:57:49 uc2 ctdbd: recoverd:Reenabling takeover runs

Which begs the question: why on a source build to /usr/local/samba, do
we need /var/lib/samba?

Thanks for your help,
Steve




More information about the samba mailing list