Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра, допустившего появление проблем в пользовательском ПО

После выхода Linux 3.8-rc1 стали поступать жалобы пользователей о зависании PulseAudio при использовании нового тестового выпуска ядра. Проблема стала появляться из-за использования в ioctl uvc_* кода ошибки "-ENOENT", вместо "-EINVAL". Mauro Carvalho Chehab, мэйнтейнер подсистемы V4L2, указал на то, что проблема скорее всего является следствием ошибки в PulseAudio, так как программа не поддерживает обработку кодов ошибки отличных от "-EINVAL", также непонятно зачем звуковой сервер пытается использовать V4L2 функции uvc_ctrl (USB video device), которые предназначены для иных целей (управление видеоустройством, таким как web-камера). Поэтому, по мнению Mauro Carvalho Chehab, данную проблему следует решать в PulseAudio и она не является регрессивным изменением в ядре.

В ответ Линус Торвальдс в достаточно грубой форме устроил мэйнтейнеру показательную "порку", подчеркнув, что главным правилом разработки ядра является недопустимость нарушения работы компонентов на стороне пользователя. Линус упомянул, что ему отдельно поступила жалоба на нарушение работы мультимедийных компонентов KDE при использовании ядра 3.8-rc1 и он страшно недоволен тем, что патч с решением проблемы был отправлен сторонним разработчиком и он сам был вынужден внести его ядро, в то время как ответственный за проблемный код мэйнтейнер пустился в дискуссии о том, что это не проблема ядра.

По словам Линуса, если какое-то изменение в ядре приводит к нарушению работы пользовательских приложений, то это сразу следует воспринимать как ошибку в ядре. По поводу изменения кода возврата Линус указал на то, что ошибка в коде ядра налицо, так как код ENOENT неприменим в ioctl для управления уже открытыми файлами, он ассоциируется только с манипуляцией с путями и всегда означал только отсутствие искомого файла или директории.

Источник:
http://www.opennet.ru/opennews/art.shtml?num=35719

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>