En mars dernier, un développeur du projet PostgreSQL a mis au jour un risque de perte silencieuse de données dans certaines conditions sur les systèmes d'exploitation Linux et BSD[1]. Pour des raisons de performance et de simplicité, PostgreSQL s'appuie en effet sur le système d'exploitation sous-jacent pour gérer les écritures sur disque et se contente simplement de lui enjoindre ponctuellement de finaliser les écritures en cours portant sur des données importantes. En ce qui concerne Linux, la gestion des erreurs disque lors d'une écriture asynchrone est malheureusement imparfaite : certains cas de figure ne provoquent pas la transmission d'une erreur à l'application (PostgreSQL dans cet exemple). Toutefois, deux cas majeurs ont été corrigés dans les noyaux Linux récents :
- Avant la version 4.13, une erreur disque n'était reportée qu'une seule fois et uniquement au premier demandeur ; il suffisait donc qu'un autre processus récupère l'erreur avant, par exemple en...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première