# 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`. ```bash 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`: ```bash # 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 ```bash 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 ```bash curl -fsSL http://10.0.1.97:8087/scripts/bench.sh | sudo bash -s -- \ --server http://10.0.1.97:8007 \ --token "29855796dacf5cfe75ff9b02d6adf3dd0f9c52db5b53e7abfb4c0df7ece1be0a" \ --iperf-server 10.0.1.97 \ --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é ```bash ls -lht /tmp/bench_payload_*.json | head -1 jq '.' /tmp/bench_payload_*.json | less ``` ## Prochaines étapes 1. Redémarrer le conteneur nginx pour servir la nouvelle version 2. Tester avec `--debug` sur le poste ASUS 3. Examiner le payload sauvegardé 4. Corriger si nécessaire ## Fichiers modifiés - frontend/scripts/bench.sh - Script principal de benchmark client