2.8 KiB
Executable File
2.8 KiB
Executable File
Fix: Erreur "jq: invalid JSON text passed to --argjson"
Problème identifié
L'erreur jq: invalid JSON text passed to --argjson à l'étape [8/8] est causée par une variable JSON vide ou invalide passée à jq.
Corrections appliquées
1. Parsing des arguments CLI (Ligne 1570-1607)
Ajout d'une fonction parse_args() pour gérer les arguments --server, --token, --iperf-server, et --debug.
parse_args() {
while [[ $# -gt 0 ]]; do
case "$1" in
--server) SERVER_URL="$2"; shift 2 ;;
--token) API_TOKEN="$2"; shift 2 ;;
--iperf-server) IPERF_SERVER="$2"; shift 2 ;;
--debug) DEBUG_PAYLOAD=1; shift ;;
--help|-h) # affiche l'aide
esac
done
}
2. Amélioration de la collecte GPU (Ligne 553-589)
Ajout de validations pour éviter de capturer les messages d'erreur de nvidia-smi:
# Vérifier que nvidia-smi fonctionne avant d'extraire les infos
if nvidia-smi &>/dev/null; then
nvidia_model=$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null | head -1 | tr -d '\n')
# Ne remplacer que si les valeurs sont non-vides et valides
if [[ -n "$nvidia_model" && ! "$nvidia_model" =~ (failed|error|Error) ]]; then
gpu_model="$nvidia_model"
fi
fi
3. Validation des variables JSON (Ligne 1326-1357)
Ajout de validations pour garantir qu'aucune variable n'est vide avant envoi.
4. Mode debug amélioré (Ligne 1328-1344)
Quand DEBUG_PAYLOAD=1 ou --debug, affiche l'état de toutes les variables JSON.
Commandes de diagnostic sur le poste distant
1. Vérifier la détection GPU
lspci | grep -iE 'vga|3d'
if command -v nvidia-smi &>/dev/null; then
if nvidia-smi &>/dev/null; then
echo "nvidia-smi fonctionne"
nvidia-smi --query-gpu=name --format=csv,noheader
else
echo "nvidia-smi échoue - driver non chargé"
fi
fi
2. Tester le script complet avec debug
curl -fsSL http://10.0.0.50:8087/scripts/bench.sh | sudo bash -s -- \
--server http://10.0.0.50:8007 \
--token "29855796dacf5cfe75ff9b02d6adf3dd0f9c52db5b53e7abfb4c0df7ece1be0a" \
--iperf-server 10.0.0.50 \
--debug
Le flag --debug va:
- Afficher l'état de validation de toutes les variables JSON
- Sauvegarder le payload complet dans
/tmp/bench_payload_YYYYMMDD_HHMMSS.json - Demander confirmation avant l'envoi
3. Examiner un payload sauvegardé
ls -lht /tmp/bench_payload_*.json | head -1
jq '.' /tmp/bench_payload_*.json | less
Prochaines étapes
- Redémarrer le conteneur nginx pour servir la nouvelle version
- Tester avec
--debugsur le poste ASUS - Examiner le payload sauvegardé
- Corriger si nécessaire
Fichiers modifiés
- frontend/scripts/bench.sh - Script principal de benchmark client