From 24d8f559975cc86fbe40125d894c4fbf20ecf60a Mon Sep 17 00:00:00 2001 From: Patrick Schurig Date: Tue, 1 Sep 2026 07:05:52 +0200 Subject: [PATCH] =?UTF-8?q?docs(amont):=20le=20dbgsym=20peut=20=C3=AAtre?= =?UTF-8?q?=20pos=C3=A9=20sans=20risque,=20et=20sans=20toucher=20au=20banc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vérifié plutôt que supposé. La version EXACTE qui a planté est encore au dépôt nymea — indispensable, car des symboles d%sune autre version ne résolvent pas un offset, ils le résolvent FAUX. Trois points qui rendent l%sopération sûre : la version exacte existe ; l%sépinglage évite la cascade (sans lui apt prendrait la 1.16.0 et mettrait à jour toute la pile de développement) ; et ces paquets sont amd64, Section debug, n%sinstallant que /usr/lib/debug — le banc est arm64 et ne peut pas être affecté. --- docs/upstream/RAPPORT_nymea_logger_sigsegv.md | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/docs/upstream/RAPPORT_nymea_logger_sigsegv.md b/docs/upstream/RAPPORT_nymea_logger_sigsegv.md index 3946612..6566eee 100644 --- a/docs/upstream/RAPPORT_nymea_logger_sigsegv.md +++ b/docs/upstream/RAPPORT_nymea_logger_sigsegv.md @@ -41,9 +41,26 @@ L'enchaînement — événement **posté**, délivré depuis la boucle glib, sur journalisation, en fin de vie de processus — a la forme d'un **usage après libération** : une invocation en file d'attente délivrée à un `Logger` déjà détruit pendant l'arrêt. -**C'est une hypothèse, pas une conclusion.** La trame `libnymea-core.so.1 + 0x1edae6` n'a pas pu -être symbolisée ici (paquet sans symboles de débogage). Avec `libnymea-dbgsym`, elle nommerait -l'appelant en une commande. +**C'est une hypothèse, pas une conclusion.** La trame `libnymea-core.so.1 + 0x1edae6` n'a pas +encore été symbolisée. Elle peut l'être, et **sans aucun risque** — vérifié le 2026-09-01 : + +```bash +V=1.15.2+202606191336~trixie1 # la version EXACTE qui a planté +sudo apt-get install libnymea1-dbgsym=$V libnymea-core-dbgsym=$V +gdb -batch -ex 'bt full' +``` + +Trois points qui rendent l'opération sûre, et qui méritent d'être vérifiés avant de la lancer : + +1. **La version exacte est encore au dépôt.** `libnymea1-dbgsym` et `libnymea-core-dbgsym` + existent en `1.15.2+202606191336~trixie1`. C'est indispensable : des symboles d'une autre + version ne résolvent pas un offset — ils le résolvent **faux**, ce qui est pire. +2. **L'épinglage évite la cascade.** Sans lui, `apt` prendrait la 1.16.0 et **mettrait à jour + toute la pile de développement** (`nymea-sdk`, `nymea-dev-tools`, `libnymea-core-dev`…), + changeant l'environnement de compilation. Avec les versions épinglées, l'installation + n'ajoute que les deux paquets de symboles : rien d'autre n'est touché. +3. **Le banc ne peut pas être affecté.** Ces paquets sont `Section: debug`, n'installent que + `/usr/lib/debug`, et sont **amd64** — la machine de développement. Le banc `.75` est arm64. Si l'hypothèse tient, elle a une conséquence de production : l'arrêt d'un `nymead` chargé peut laisser des écritures de journal en file, et le risque n'est pas limité aux tests.