Alla fine del 2019 una rielaborazione del codice pipe del kernel Linux ha visto parte della sua logica rielaborata per svegliare i lettori solo se necessario ed evitare un possibile problema di mandria tonante. Ma si scopre che alcune librerie Android hanno abusato della funzionalità e questo ha portato a applicazioni Android non funzionanti durante il passaggio a kernel recenti. Mentre il software dello spazio utente è dalla parte sbagliata, il kernel si attiene alla sua politica di non rompere lo spazio utente e come tale Linus Torvalds ha cambiato il comportamento del codice per Linux 5.14 e per essere riportato ai precedenti kernel stabili.
Piuttosto che svegliare i lettori solo se necessario, la modifica unita al kernel Linux venerdì farà sì che le scritture pipe sveglino sempre i lettori. A causa di alcune librerie Android come Realm che utilizzano in modo improprio l’interfaccia EPOLL, la pipe cambia alla fine del 2019 ha finito per danneggiare alcune app Android.
Questo ha interrotto”numerose applicazioni Android”da Linux 5.5, ma dato il lungo periodo di tempo tra le versioni del kernel fornite da Android, è diventato un problema solo di recente con la transizione di Android a Linux 5.10 LTS. Da allora il comportamento di Realm è stato risolto, ma ci vorrà del tempo prima che tutte le applicazioni che sfruttano la libreria (e qualsiasi altra libreria problematica) vengano aggiornate e ricostruite, quindi per ora le applicazioni Android danneggiate sono ancora disponibili.
Mentre lo spazio utente stava abusando di un’interfaccia e questo ha portato a”tutte le applicazioni che utilizzano questa libreria hanno smesso di funzionare”, il kernel Linux ha una politica che se le applicazioni si rompono dal nuovo comportamento/cambiamento del kernel, è una regressione. Così venerdì Linus Torvalds ha scritto e unito questa modifica per far sì che le scritture sveglino sempre i lettori anche se estranei al fine di convivere meglio con il vecchio comportamento.
Vedi questo commit per chi è interessato a tutti i dettagli tecnici sul problema e sulla risoluzione.