# Debug & post-mortems Ce fichier sert à capitaliser sur les problèmes rencontrés. ## À documenter - bug pénible - mauvaise compréhension - fausse hypothèse - solution finale ## Objectif Ne plus jamais perdre du temps sur le même problème. --- # Post‑mortems ## SQL Server qui crash dans un conteneur LXC Proxmox ### Contexte NUC personnel sous Proxmox avec plusieurs services en conteneurs LXC. Un conteneur SQL Server (Microsoft SQL Server Linux) ne démarrait plus. ### Symptômes - `sqlcmd` impossible → timeout - service `mssql-server` en boucle de restart - logs contenant : ``` Operation not permitted chmod: changing permissions of '/var/opt/mssql/log/...' ``` - crash + génération de core dump ### Cause probable SQL Server utilise certaines opérations système qui sont mal supportées dans les conteneurs LXC (permissions, filesystem, capabilities). Dans un environnement Proxmox LXC, cela peut casser après : - une mise à jour - un changement de permissions - un changement de configuration du conteneur ### Conclusion SQL Server **n'est pas un bon candidat pour un conteneur LXC Proxmox**. ### Décision architecturale Pour un homelab ou un petit serveur : - éviter SQL Server en LXC - préférer : - PostgreSQL - MariaDB / MySQL Si SQL Server est nécessaire : - utiliser une **VM complète** plutôt qu'un conteneur. ### Règle à retenir > Éviter les bases lourdes nécessitant des capabilities système avancées dans des conteneurs LXC. --- ## Suppression silencieuse due à deux éditions concurrentes sur le même fichier ### Contexte Un même fichier a été modifié par deux mécanismes proches dans le temps : édition en cours d’agent et passe outillée/linter/formatteur. ### Symptômes - bloc de code disparu sans erreur explicite - diff final incohérent avec l’intention de modification - impression de “régression fantôme” après une édition pourtant correcte ### Cause probable Deux processus ont réécrit le même fichier sans coordination, le second écrasant silencieusement une partie du travail du premier. ### Correctif / règle à retenir - éviter deux passes d’écriture concurrentes sur le même fichier - relire le diff immédiatement après toute passe automatique - privilégier une séquence stricte : édition, puis lint/format, puis vérification