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 !