<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра, допус...</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html</link>
    <description>После выхода Linux 3.8-rc1 стали поступать жалобы (https://lkml.org/lkml/2012/12/23/48) пользователей о зависании PulseAudio при использовании нового тестового выпуска ядра. Проблема стала появляться из-за использования в ioctl uvc_* кода ошибки &quot;-ENOENT&quot;, вместо &quot;-EINVAL&quot;. Mauro Carvalho Chehab, мэйнтейнер подсистемы V4L2, указал (https://lkml.org/lkml/2012/12/23/53) на то, что  проблема скорее всего является следствием ошибки в PulseAudio, так как программа не поддерживает обработку кодов ошибок, отличных от &quot;-EINVAL&quot;. Mauro также упомянул, что непонятно зачем звуковой сервер пытается использовать  V4L2 функции uvc_ctrl (USB video device), которые предназначены для иных целей (управление видеоустройством, таким как web-камера). Поэтому, по мнению Mauro, данную проблему следует решать в PulseAudio и она не является регрессивным изменением в ядре.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;В ответ на подобные заявления, Линус Торвальдс в достаточно грубой форме устроил (https://lkml.org/lkml/2012/12/23/75) мэйнтейнеру показательную &quot;порку&quot;, подч</description>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра,... (netch)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#437</link>
    <pubDate>Wed, 09 Jan 2013 10:25:00 GMT</pubDate>
    <description>&amp;gt; в любом нормальном софте.&lt;br&gt;&lt;br&gt;Простите, но Вы, очевидно, никогда не писали софт серьёзнее, чем /usr/bin/sort.&lt;br&gt;&lt;br&gt;&amp;gt; &amp;#171;неизвестная ошибка&amp;#187; &amp;#8212; это ЧП. при ЧП лучше &lt;br&gt;&amp;gt; всего рухнуть с воплями, потому что неизвестно, какие могут быть последствия &lt;br&gt;&amp;gt; у такой ошибки.&lt;br&gt;&lt;br&gt;Во-первых, любому программисту с опытом известно, что какая бы ни была ошибка, её обработка может и очень часто *должна* включать меры по аккуратному свёртыванию работы, включая освобождение тех ресурсов, которые сами не освобождаются, дерегистрацию, сброс логов и т.д. - в общем, всё, что необходимо для того, чтобы программа могла потом стартовать заново. И никакая &quot;неизвестная ошибка&quot; не является причиной не делать этого.&lt;br&gt;&lt;br&gt;Во-вторых, если неизвестная ошибка произошла при каком-то действии, то её последствия ограничиваются пределом именно этого действия. Более серьёзные ошибки в Unix-системах вызывают сигналы и прочие асинхронные нотификации о нерешаемых проблемах. Этот принцип не специфицирован в явном виде (по крайней мере, я такого</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра,... (arisu)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#436</link>
    <pubDate>Wed, 09 Jan 2013 09:11:13 GMT</pubDate>
    <description>в любом нормальном софте. &amp;#171;неизвестная ошибка&amp;#187; &amp;#8212; это ЧП. при ЧП лучше всего рухнуть с воплями, потому что неизвестно, какие могут быть последствия у такой ошибки.&lt;br&gt;</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра,... (netch)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#435</link>
    <pubDate>Wed, 09 Jan 2013 09:03:11 GMT</pubDate>
    <description>&amp;gt; таки &amp;#171;неизвестная ошибка&amp;#187; является поводом для аборта. на всякий случай.&lt;br&gt;&lt;br&gt;Только в сферическом софте в вакууме.&lt;br&gt;</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра,... (arisu)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#434</link>
    <pubDate>Wed, 09 Jan 2013 08:57:03 GMT</pubDate>
    <description>таки &amp;#171;неизвестная ошибка&amp;#187; является поводом для аборта. на всякий случай.&lt;br&gt;</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра,... (netch)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#433</link>
    <pubDate>Wed, 09 Jan 2013 08:49:03 GMT</pubDate>
    <description>&amp;gt;&amp;gt; А теперь, внимание, вопрос: как он должен реагировать на ошибки, &lt;br&gt;&amp;gt;&amp;gt; не описанные в man&apos;е? Выражаясь неформально, это abort, retry или fail?&lt;br&gt;&amp;gt; fail. с записью кода ошибки в лог.&lt;br&gt;&amp;gt; upd: чёрт. abort, конечно. извиняюсь.&lt;br&gt;&lt;br&gt;Совершенно не обязательно. Например, неизвестная ошибка при открытии необязательного файла, отсутствие которого допускает альтернативный вариант работы - является причиной только для записи в лог, и продолжения работы (то есть, ignore, в тех же терминах).&lt;br&gt;</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра, допус... (netch)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#432</link>
    <pubDate>Wed, 09 Jan 2013 08:46:19 GMT</pubDate>
    <description>&amp;gt; Валентин, попытка отойти от стандарта (POSIX -- стандарт, между прочим) должна караться &lt;br&gt;&amp;gt; апстеной. И только ей.&lt;br&gt;&lt;br&gt;Что ж, если разговор пошёл в таком ключе, то давай пройдём по стандартам и в предельно официальном варианте. Прошу встречных обоснований этому тезису, а именно:&lt;br&gt;&lt;br&gt;1. Где именно в POSIX сказано, что для некоторой функции допускаются только те ошибки, которые упомянуты в соответствующем описании в POSIX?&lt;br&gt;&lt;br&gt;Я пока что вижу явное разрешение противоположного, а именно (в functions/V2_chap02.html):&lt;br&gt;&lt;br&gt;&amp;lt;blockquote&amp;gt;Implementations may support additional errors not included in this list, may generate errors included in this list under circumstances other than those described here, or may contain extensions or limitations that prevent some errors from occurring.&amp;lt;/blockquote&amp;gt;&lt;br&gt;&lt;br&gt;2. Где и когда Linux специфицировал официальную совместимость с POSIX?&lt;br&gt;&lt;br&gt;Я уверен, что ты по обоим пунктам не сможешь дать обоснования, а значит, ссылка на POSIX как стандарт, который не допускает появления других ошибок, чем</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра,... (arisu)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#431</link>
    <pubDate>Wed, 09 Jan 2013 08:28:36 GMT</pubDate>
    <description>&amp;gt; А теперь, внимание, вопрос: как он должен реагировать на ошибки, &lt;br&gt;&amp;gt; не описанные в man&apos;е? Выражаясь неформально, это abort, retry или fail? &lt;br&gt;&lt;br&gt;fail. с записью кода ошибки в лог.&lt;br&gt;&lt;br&gt;upd: чёрт. abort, конечно. извиняюсь.&lt;br&gt;</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра, допус... (Andrew Kolchoogin)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#430</link>
    <pubDate>Wed, 09 Jan 2013 08:07:07 GMT</pubDate>
    <description>&amp;gt; На практике невозможно всегда и во всём соблюдать этот список,&lt;br&gt;&lt;br&gt;Это возможно всегда и во всём.&lt;br&gt;&lt;br&gt;&amp;gt; и весь софт, который общается с ядром, должен быть готов к возврату ошибки&lt;br&gt;&amp;gt; с недокументированным кодом.&lt;br&gt;&lt;br&gt;То есть, масштабируя: софт, который общается с ядром, должен обрабатывать все возможные ошибки. А теперь, внимание, вопрос: как он должен реагировать на ошибки, не описанные в man&apos;е? Выражаясь неформально, это abort, retry или fail?&lt;br&gt;&lt;br&gt;Валентин, попытка отойти от стандарта (POSIX -- стандарт, между прочим) должна караться апстеной. И только ей.&lt;br&gt;</description>
</item>

<item>
    <title>Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра,... (arisu)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/88002.html#429</link>
    <pubDate>Wed, 09 Jan 2013 06:37:16 GMT</pubDate>
    <description>э&amp;#8230; я-то в курсе, что errno &amp;#8212; это thread local. отчасти потому и восхищался быдлокодом. а отчасти &amp;#8212; тем, как быдлокодер &amp;#171;защищает&amp;#187; глобальное значение, если бы оно было глобальным. два в одном, красота.&lt;br&gt;</description>
</item>

</channel>
</rss>
