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=20230601; t=1707663273; x=1708268073; darn=lists.altlinux.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=18mzCGNNk95k9Ko771dXnJ4IYnSBARWsMRu+ueGkrQM=; b=aMu6+20NTKzu9bD12kxlz/szT/8uKhUh/+/q6TvjzMw7lvy5TMB5QSO0/z00KPufG5 kotv+CArk4kSeFjErcXhpTJdnlwEZ2TwXOZWFAHKGthyMiHlkfbSOUt8c1luB6Vzd6H2 58n3rXMRSA9vjb6+sCv5gRMGJVv0qkOyFVi0WXrbpK9vYzHBf5SV6tl8w65HssN23q9M hvaY++rM+cOzSHAVvNRDCQwEhx0f+xsIw11YzYO6/JzHyG2L8wsvS33arBVWI0x1/X4W PqF/XYcUTLdxBUuRIsWs5v0waDDWumBpxat17ZZA41ji3Q4h2mLA+FuEJW+72kDk5Z+g 7yFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707663273; x=1708268073; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=18mzCGNNk95k9Ko771dXnJ4IYnSBARWsMRu+ueGkrQM=; b=raTPh0ArP+apBCNbwRy3//W8GidPBpVf05APRTii4uqjZMR7SUt/uRKRwxm/bZBCbE 4sP1QbbMnETsUH1jsw2EdAnqvR6Fc2M17DSE4K/RlT975QEs/AU/aIRvnVRhi2S3pWm7 sRRFy+/jcc0f3CB4t3mtdcZwR0oRuD1KRCxj11/vtgRoysK9cvoTTSYM4qV/1kW7OSBO EnQvCvBrQWCfuS0eFlT0UzwuHYya1waDIHmeoZ/b6XgWX4URLViCQnT61sWcXPTmMxd7 dGhiLJ3ZwfhQhRZ/dFYIV0O+qMdyITN+dSPT1z7gI0LTTJ8xuozGOdQbNHy9L9BcLZSk fB/Q== X-Gm-Message-State: AOJu0YwhQvA80Ht73ytbNH/Uu7oOxVVImD1KHRnDKARiX11ENM4pxtrm oVs2/QqdpBEGh7zwW0qBCtIQVvT7v4SxRCfagomc+XoS8+DBbaqo4k7xJXwI X-Google-Smtp-Source: AGHT+IGPkWLoZXGWrxdFetVVECTUx23MGpQiRMSC1RtShMlvq9mY9m/pspNWJImLOZIEnfll6jCsLQ== X-Received: by 2002:a05:6512:49e:b0:511:4ee3:dc0f with SMTP id v30-20020a056512049e00b005114ee3dc0fmr2431787lfq.19.1707663272700; Sun, 11 Feb 2024 06:54:32 -0800 (PST) Date: Sun, 11 Feb 2024 15:54:30 +0100 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [make-initrd] root= --> mount event handler / 900-localdev regression X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Feb 2024 14:54:35 -0000 Archived-At: List-Archive: On Sun, Feb 11, 2024 at 04:57:20AM +0300, Leonid Krivoshein wrote: > Привет! > > > Раньше методы загрузки и их смена были частью документации make-initrd. > Кажется, в этой логике что-то поломалось или поменялось несовместимым > образом. Сейчас концовка шага pipeline rootfs выглядит так: > > echo localdev > /etc/initrd/method > exit 2 > > Исходим из предположения, что root=pipeline как бы должен поменяться на > другой метод загрузки, т.е. localdev, но как бы не так, хотя раньше > именно так и было. Отработав, демон мог передать управление другому > коду. Сейчас ровно так и происходит. Когда работает pipeline, то /etc/initrd/method = pipeline. Шаг rootfs переключает method=localdev. Это происходит в очереди событий pipeline. Это разблокирует обработчик в очереди mount. Возможно рейс может случиться из-за того, что method меняется до операции mount. Наверное правильнее было бы сделать так: --- a/features/pipeline/data/lib/pipeline/rootfs +++ b/features/pipeline/data/lib/pipeline/rootfs @@ -12,4 +12,4 @@ done -run mount --move "$prevdir" "$rootmnt" echo localdev > /etc/initrd/method +run mount --move "$prevdir" "$rootmnt" exit 2 В остальном я не вижу тут других рейсов. > Сейчас же работают сразу две вещи: > > 1. Обработчики событий монтирования. > 2. 900-localdev работает всегда и с самого начала. > > Что в этом плохого? Гонки. Потому что цепочка действий (pipeline, > bootchain) не отработала, а параллельно начинает какой-то код что-то > делать. Если сейчас заменить концовку шага rootfs на: > > exit 2 > > ничего не поменяется. До этого шага всё может даже не дойти, а > закончится раньше. А если по каким-то причинам цепочка "застрянет", мы > увидим что-то вроде: Она "застрянет" лишь потому что method всё ещё pipeline. > initramfs: Waiting for root (pipeline) ... > > даже после выполнения команды "echo localdev > /etc/initrd/method", т.к. > 100-rootdelay не перечитывает теперь изменённое значение, он берёт $ROOT > из /proc/cmdline. $ git ls-tree -r master | grep rootdelay 100755 blob c4dfb325061456cd3c9e47a12c5043d97126c2a5 data/etc/rc.d/init.d/rootdelay 100755 blob b6624fbd8ec095f1a48e2a4b50a7ad771f367d4c data/sbin/rootdelayd Я не знаю про какой 100-rootdelay ты говоришь. Его нет уже как с 9 июля 2023. > Как правильно избежать этих гонок? Одно потенциальное место гонки я предложил исправить выше. О каких ещё местах ты говоришь я пока не понимаю. > Как отключить на время обработки цепочки обработку mount и localdev? Все эвенты в очереди mount в handlers/mount/900-localdev игнорируются пока method не localdev. > И как включить их обратно после того, как цепочка отработает? Записать в /etc/initrd/method значение localdev и переместить/смонтировать в rootmnt все необходимые устройства. -- Rgrds, legion