À la fin de 2019, une refonte du code pipe du noyau Linux a vu une partie de sa logique retravaillée pour ne réveiller les lecteurs que si nécessaire et éviter un éventuel problème de troupeau tonitruant. Mais il s’avère que certaines bibliothèques Android ont abusé de la fonctionnalité, ce qui a conduit à des applications Android cassées lors du passage à des noyaux récents. Bien que le logiciel de l’espace utilisateur ait tort, le noyau s’en tient à sa politique de ne pas casser l’espace utilisateur et, en tant que tel, Linus Torvalds a modifié le comportement du code pour Linux 5.14 et doit être rétroporté sur les noyaux stables précédents.
Plutôt que de simplement réveiller les lecteurs si nécessaire, le changement fusionné dans le noyau Linux vendredi fera que les écritures de pipe réveilleront toujours les lecteurs. En raison de l’utilisation abusive de l’interface EPOLL par certaines bibliothèques Android telles que Realm, le tuyau change fin 2019 a fini par casser certaines applications Android.
Cela a cassé de”nombreuses applications Android”depuis Linux 5.5, mais étant donné la longue période entre les versions du noyau livrées par Android, cela n’est devenu un problème que récemment avec la transition d’Android vers Linux 5.10 LTS. Le comportement de Realm a depuis été corrigé, mais il faudra un certain temps avant que toutes les applications utilisant la bibliothèque (et toute autre bibliothèque problématique) soient mises à jour et reconstruites, donc pour l’instant les applications Android cassées sont toujours là.
Alors que l’espace utilisateur utilisait mal une interface et que”toutes les applications utilisant cette bibliothèque ont cessé de fonctionner”, le noyau Linux applique une politique selon laquelle si les applications rompent avec le nouveau comportement/changement du noyau, il s’agit d’une régression. Ainsi, vendredi, Linus Torvalds a rédigé et fusionné ce changement pour que les écritures réveillent toujours les lecteurs, même s’ils sont étrangers, afin de mieux s’adapter à l’ancien comportement.
Voir ceci commit pour ceux qui sont intéressés par tous les détails techniques sur le problème et sa résolution.