Tâche #37520
Scénario #37402: Porter Seth en 2.11
problème d'usage quotas
100%
Description
quotas est devenu natif à ext4, son usage à lui aussi changé.
Le test jenkins : test-instance-acadc1-2.11.0-amd64
retorune des erreurs (non bloquantes) :
retour de logs :
2026-06-22 21:06:01.167 quotacheck: Impossible d'utiliser stat() sur le périphérique monté tmpfs : Aucun fichier ou dossier de ce nom
2026-06-22 21:06:01.167 quotacheck: Impossible d'utiliser stat() sur le périphérique monté tmpfs : Aucun fichier ou dossier de ce nom
2026-06-22 21:06:01.167 quotacheck: Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated. You can enable the feature by unmounting the file system and running 'tune2fs -O quota <device>'.
2026-06-22 21:06:01.167 quotacheck: Impossible de remonter le système de fichier monté sur / en lecture seule, les valeurs comptabilisées riquent d'être fausses.
2026-06-22 21:06:01.167 Veuillez interrompre tous les programmes qui écrivent sur ce système de fichiers ou utilisez l'option -m pour forcer la vérification.
2026-06-22 21:06:01.167 quotaon: Impossible d'utiliser stat() sur le périphérique monté tmpfs : Aucun fichier ou dossier de ce nom
2026-06-22 21:06:01.167 quotaon: Impossible d'utiliser stat() sur le périphérique monté tmpfs : Aucun fichier ou dossier de ce nom
2026-06-22 21:06:01.167 quotaon: Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated. You can enable the feature by unmounting the file system and running 'tune2fs -O quota <device>'.
Demandes liées
Révisions associées
Évite les appels quota globaux à l'instance
ref #37520
Historique
#1 Mis à jour par Ludwig Seys il y a 3 mois
- Statut changé de Nouveau à En cours
#2 Mis à jour par Ludwig Seys il y a 3 mois
- % réalisé changé de 0 à 50
Le script /usr/share/eole/pretemplate/01-fix-home-fstab, fourni par eole-ad-dc, ajoute les options usrquota,grpquota dans /etc/fstab, remonte le point de montage concerné, puis relance systématiquement :
quotacheck -augf
quotaon -aug
Sur 2.11 avec ext4, ce comportement génère plusieurs messages non bloquants :
quotacheck: Impossible d'utiliser stat() sur le périphérique monté tmpfs : Aucun fichier ou dossier de ce nom
quotaon: Impossible d'utiliser stat() sur le périphérique monté tmpfs : Aucun fichier ou dossier de ce nom
quotaon: Your kernel probably supports ext4 quota feature but you are using external quota files.
quotaon: utilisation de /home/aquota.group sur /dev/sda2 [/home] : Périphérique ou ressource occupé
quotaon: utilisation de /home/aquota.user sur /dev/sda2 [/home] : Périphérique ou ressource occupé
Les quotas sont pourtant bien actifs. Exemple relevé sur VM :
findmnt -no OPTIONS -T /home
findmnt -no OPTIONS -T /
#Résultat :
rw,relatime,quota,usrquota,grpquota
rw,relatime,quota,usrquota,grpquota
Et avec quotaon en mode affichage uniquement :
quotaon -pug /home 2>/dev/null
quotaon -pug / 2>/dev/null
#Résultat :
group quota sur /home (/dev/sda2) est activé
user quota sur /home (/dev/sda2) est activé
group quota sur / (/dev/sda2) est activé
user quota sur / (/dev/sda2) est activé
Le problème vient du fait que le script relance quotaon alors que les quotas sont déjà actifs après le remount, du coup quotaon retourne une erreur de type “Périphérique ou ressource occupé”, et les outils quota affichent des messages parasites sur des montages tmpfs.
Solution possible :
conserver le point de montage réellement modifié (/home ou /) ;
ne plus utiliser quotacheck -a ni quotaon -a ;
vérifier l’état du montage avec findmnt ;
ne lancer quotaon que si les options quota ne sont pas présentes ;
masquer les messages parasites lors des vérifications d’état.
Exemple de logique :
def quota_options_enabled(mountpoint):
cmd = "findmnt -no OPTIONS -T {} 2>/dev/null".format(mountpoint)
options = os.popen(cmd).read().strip().split(',')
return 'usrquota' in options and 'grpquota' in options
def enable_quota(mountpoint):
os.system('quotacheck -ugfm {} 2>/dev/null'.format(mountpoint))
if not quota_options_enabled(mountpoint):
os.system('quotaon -ug {} 2>/dev/null'.format(mountpoint))
Le script pourrait aussi éviter de lancer quotaon si : ```quotaon -pug <mountpoint> 2>/dev/null``` indique déjà que les quotas utilisateur/groupe sont actifs.
Objectif : ne plus faire échouer ou polluer les test Jenkins avec des messages non bloquants, et conserver l’activation des quotas sur /home ou /.
#3 Mis à jour par Ludwig Seys il y a 3 mois
- Statut changé de En cours à À valider
- % réalisé changé de 50 à 100
#4 Mis à jour par Benjamin Bohard il y a environ 2 mois
- Statut changé de À valider à Résolu
#5 Mis à jour par Joël Cuissinat il y a environ un mois
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0
#6 Mis à jour par Joël Cuissinat il y a environ un mois
- Lié à Tâche #37588: Corriger le script de sauvegarde des quotas ajouté