Files
serv_benchmark/docs/COMMAND_CURL_FIX.md
Gilles Soulier c67befc549 addon
2026-01-05 16:08:01 +01:00

93 lines
2.8 KiB
Markdown
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`.
```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.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é
```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