From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=nzpWcje72J1kNMwqjn5woDBDsHrkQekAFTUAAlwbBeE=; b=OkLWMp3Rq2R7mku/HqNnQ4XeMuCaJ2Mvvm8Nhm9ZMcugsummBCj3xMuMa6PU/QpAOZ rKij0wD/uEVorwy1JSLhNWCLBDmPg/0KJivm+9YDxeV1TW+5cZEQQV2Mtq3pgrIH9buh h6xx5WvRX5/F5goYrA3l4FIjXR8HzkQ8kXZk+Ep4VeRXDWrgSTQg/P/vZbSKv3cKjrkV 9I0LyJ4en/Oxte19h74BBrLXif/Url3B/xiQq+0gDy3jCvyIgL3vCB0hRkdNaDp+zDcf Ori0KDql6Q5Ut/IRyvHhWSO3w780xcG6HySuv1HKUWv526BQbKNWVOlNtmPgiT0/6wDF /95A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=nzpWcje72J1kNMwqjn5woDBDsHrkQekAFTUAAlwbBeE=; b=gcpYt6LcrUhckJKDi7GwtI2mOM8vT6bRTYwtwO5wThJxAjv265ZJiEM/AHeDj9HxEO 1ZDoqm2uxBt73gB9hl360dgNQwnsj2//1PD8WXrz0y4Ap1t0jtveA6gOIscxK0Uuu8P8 kXB4ZCReNP+WjVN1h0xt5Sfp1Rn05EwZgBDH2DdmMcXnYagzh8mMhj93NrDTaITr8Gy+ T88LKvVfYCFgaG1Rhcv0ubY9TAZULD8wQig44HiD0kyi28pYuDRhxwUNflc+Yia2SLOg zcSm5diebntEyXvgf6aCN56u02TzgQacC1ImyHicEyzIbvmc3/woyn8/HirWSHR6Wuo6 PCXA== X-Gm-Message-State: APt69E0c+hZcGH4ko7HwvM60XrDXjk/3uAEha4MYpCJms+qRQ4qrwuYG PWoT+1afgiyNxBhlsVF09Smjhg== X-Google-Smtp-Source: ADUXVKLVZhKZmNqGgX8CT6NIbmyc3SaLItn1XSCPBRBYXt6fIuV6exGZaCP2GtUakK/x1vxuZXAkbg== X-Received: by 2002:a2e:458a:: with SMTP id s132-v6mr1301601lja.92.1528839287503; Tue, 12 Jun 2018 14:34:47 -0700 (PDT) To: devel@lists.altlinux.org References: <20180526163924.GB14499@teacher.po.cs.msu.ru> <44c85c87-872f-a98e-c227-3eea1fa92712@gmail.com> <20180611101145.GB21789@cello> From: Leonid Krivoshein Message-ID: <2fe2c828-773d-9a63-480e-4885a046f640@gmail.com> Date: Wed, 13 Jun 2018 00:34:45 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <20180611101145.GB21789@cello> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [devel] =?utf-8?q?=5Bbugzilla-daemon=40altlinux=2Eru=3A_=5BBug_34?= =?utf-8?b?MzQ3XSDQodGC0YDQsNC90L3Ri9C5INCy0YDQtdC80LXQvdC90YvQuSDQvdGD?= =?utf-8?b?0LvRjC3QvNCw0YDRiNGA0YPRgiDQu9C+0LzQsNC10YIg0YHQtdGC0LXQstGD?= =?utf-8?q?=D1=8E_rootfs=5D?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2018 21:34:50 -0000 Archived-At: List-Archive: List-Post: 11.06.2018 13:11, Arseny Maslennikov пишет: > On Wed, May 30, 2018 at 04:34:23AM +0300, Leonid Krivoshein wrote: >> 28.05.2018 19:19, Arseny Maslennikov пишет: >>> Пользуясь случаем, всё-таки прошу одобрить таск 206842, исправляющий >>> баги 34347 и 34320. Если код слишком плохой даже для пропагатора, >>> я поправлю, мне не жалко. :) >> Видимо я не спец в нулевых маршрутах, поэтому мало чем могу быть полезен. :) >> Но строчка assert((sz - sp) == 1); вызвала спортивный интерес: как поведёт >> себя приложение с PID=1, если утверждение окажется ложным, с учётом того, >> что в опциях сборки нет NDEBUG. > Как и любое другое, завершится со всеми вытекающими последствиями (я > этим вопросом тоже задался, когда готовил исправление). > > С другой стороны, код, в котором такое утверждение под assert() ложно, > содержит логическую ошибку и должен быть исправлен до попадания в сизиф. > Именно так его применяют, например, в (извините) systemd — деймон, который > падает со скрипом, да ещё сообщает место, куда смотреть, лучше, чем > "работающий" деймон с утекающей памятью, или такой, который просто > продолжает творить некоторую известную глупость, в то время как разработчик > не знает горя. Да, даже если это PID 1, в таком случае — тем более. Разница между демоном, который крутится в stage2 месяцами, и инитом с PID=1 в initramfs/stage1 очевидна. Для демона утечки памяти -- "мина замедленного действия", пропагатор же ими весь напичкан (был?). И ничего: всё "прощается" и забывается при переходе в stage2. Если же упадёт инит, в журнал уже ничего не попадёт: последнее, что мы увидим в консоли -- хвост от паники ядра. Мы даже не поймём, что случилось и почему. > assert() в нашем случае упрощает тестирование: увидя, что "система > загрузилась" (пропагатор сделал всё необходимое), мы точно знаем, что > определённой глупости не будет, вместо того, чтобы на это надеяться. Проверялись длины строк (адреса), зависящие от конкретной машины. В этой ситуации assert() слишком жестковат в качестве средства отладки. Поскольку надеяться можно будет на вашей машине, но так ли это будет на других?.. >> Один не закомментированный assert() в init.c >> есть, это будет второй. > Вообще-то можно было реализовать так, чтобы не нуждаться в дополнительной > проверке. > Коли assert() здесь считают инструментом для слабых духом, я подумал и > решил переписать этот сегмент — тег 20180606-alt1. > Так что пока второго assert() не будет :) assert() безумно полезная вещь, но из пропагатора я бы его везде повыкидывал... от греха подальше. В этом пакете даже ключик NDEBUG будет "миной замедленного действия". И хорошо, что поменяли этот фрагмент, вопросов будет меньше. -- Best regards, Leonid Krivoshein.