В конце В 2019 году переработка кода конвейера ядра Linux привела к переработке части его логики, чтобы только будить читателей, если это необходимо, и избежать возможной проблемы с грохотом стада. Но оказалось, что некоторые библиотеки Android злоупотребляли функциональностью, и это привело к поломке приложений Android при переходе на новые ядра. В то время как программное обеспечение пользовательского пространства работает неправильно, ядро ​​придерживается своей политики не нарушать пространство пользователя, и поэтому Линус Торвальдс изменил поведение кода для Linux 5.14 и перенесет его на предыдущие стабильные ядра.

Вместо того, чтобы будить читателей только в случае необходимости, изменение, внесенное в ядро ​​Linux в пятницу, заставит конвейерные записи всегда будить читателей. Из-за того, что некоторые библиотеки Android, такие как Realm, неправильно используют интерфейс EPOLL, изменение канала в конце 2019 года сломались некоторые приложения для Android.

Это сломало «множество приложений Android», начиная с Linux 5.5, но, учитывая длительный период времени между версиями ядра, поставляемыми Android, это стало проблемой только недавно при переходе Android на Linux 5.10 LTS. С тех пор поведение Realm было исправлено, но потребуется некоторое время, прежде чем все приложения, использующие библиотеку (и любые другие проблемные библиотеки), будут обновлены и перестроены, поэтому на данный момент сломанные приложения Android все еще существуют.

В то время как пользовательское пространство неправильно использовало интерфейс и это привело к тому, что «все приложения, использующие эту библиотеку, перестали работать», ядро ​​Linux поддерживает политику, согласно которой, если приложения нарушают новое поведение/изменения ядра, это регресс. Таким образом, в пятницу Линус Торвальдс создал и объединил это изменение, чтобы запись всегда будила читателей, даже если они посторонние, чтобы лучше сочетаться со старым поведением.

См. это commit для тех, кто интересуется всеми техническими деталями по проблеме и ее разрешению.

Categories: IT Info