Samba et un numflock trop faible !
J'utilise Samba pour partager des contenus avec de nombreux utilisateurs (clients Windows) au travers d'un réseau local. Le serveur est très stable - les contributeurs de Samba ont fait un travail remarquable !
Toutefois, suite à quelques arrêts de copie chez certains utilisateurs, et après un patient épluchage des logs, je découvrais ceci :
lib/util_tdb.c:521(tdb_wrap_log) tdb(/var/run/samba/locking.tdb): tdb_lock failed on list 5277 ltype=1 (No locks available) smbd/close.c:296(close_remove_share_mode) close_remove_share_mode: Could not get share mode lock for file lib/util_tdb.c:521(tdb_wrap_log) tdb(/var/run/samba/locking.tdb): tdb_lock failed on list 9355 ltype=1 (No locks available) lib/util_tdb.c:521(tdb_wrap_log) tdb(/var/run/samba/locking.tdb): tdb_lock failed on list -1 ltype=1 (No locks available) locking/locking.c:804(share_mode_lock_destructor) store returned NT_STATUS_UNSUCCESSFUL lib/util.c:1465(smb_panic) PANIC (pid 24575): could not store share mode entry: NT_STATUS_UNSUCCESSFUL
Curieux message que je ne parvenais pas à raccrocher avec un quelconque dysfonctionnement. Mes recherches sur Google ne donnaient pas grand chose : quelques postes (anciens) relatifs à HP-UX et à une variable du noyau : nflock.
C'est alors que je compris : comme Samba tourne dans une machine virtuelle OpenVZ, alors le serveur doit avoir épuisé le nombre de locks disponibles pour la VM. L'observation du fichier /proc/user_beancounters (disponible sur l'hôte OpenVZ) confirma le diagnostic : la machine virtuelle avait heurté à plusieurs reprises le seuil de numflock (file locks, verrous de fichier) !
Le seuil se modifie aisément dans le fichier de configuration de la machine virtuelle OpenVZ, et voilà le tour est joué et Samba est apaisé !
En espérant que cette astuce saura aider quelques uns !