Am Ende von 2019 wurde bei einer Überarbeitung des Pipe-Codes des Linux-Kernels ein Teil seiner Logik überarbeitet, um die Leser nur bei Bedarf aufzuwecken und ein mögliches Problem mit der donnernden Herde zu vermeiden. Es stellte sich jedoch heraus, dass einige Android-Bibliotheken die Funktionalität missbraucht haben, und dies hat zu fehlerhaften Android-Anwendungen geführt, wenn auf neuere Kernel umgestellt wurde. Während die User-Space-Software im Unrecht ist, hält der Kernel an seiner Politik fest, den User-Space nicht zu beschädigen, und als solcher hat Linus Torvalds das Verhalten des Codes für Linux 5.14 geändert und auf frühere stabile Kernel zurückportiert.
Anstatt nur Leser bei Bedarf aufzuwecken, wird die Änderung, die am Freitag in den Linux-Kernel integriert wurde, dazu führen, dass Pipe-Schreibvorgänge immer Leser aufwecken. Da einige Android-Bibliotheken wie Realm die EPOLL-Schnittstelle missbrauchen, ändert sich die Pipe Ende 2019 hat einige Android-Apps kaputt gemacht.
Dies hat”zahlreiche Android-Anwendungen”seit Linux 5.5 kaputt gemacht, aber angesichts der langen Zeitspanne zwischen den von Android ausgelieferten Kernel-Versionen ist es erst kürzlich zu einem Problem geworden, als Android auf Linux 5.10 LTS umgestellt hat. Das Verhalten von Realm wurde seitdem behoben, es wird jedoch einige Zeit dauern, bis alle Anwendungen, die die Bibliothek (und alle anderen problematischen Bibliotheken da draußen) nutzen, aktualisiert und neu erstellt werden, sodass derzeit noch defekte Android-Anwendungen verfügbar sind.
Während der Userspace eine Schnittstelle missbrauchte und dies dazu führte, dass”alle Anwendungen, die diese Bibliothek verwenden, nicht mehr funktionierten”, hat der Linux-Kernel eine Richtlinie, dass es eine Regression ist, wenn Anwendungen von neuem Kernel-Verhalten/Änderungen abbrechen. So hat Linus Torvalds am Freitag diese Änderung verfasst und zusammengeführt, um Leser immer wachzurütteln, auch wenn sie überflüssig sind, um mit dem alten Verhalten besser zurechtzukommen.
Siehe dieses Commit für alle, die an allen technischen Details zu dem Problem und der Lösung interessiert sind.