93 lines
2.8 KiB
Markdown
Executable File
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
|