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=20251104; t=1792152431; x=1792757231; darn=lists.altlinux.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iXIirrV6s7RrP0mU2+oNXlM0e7bTHvInhCL9i965qeY=; b=Lmg/vOPRG1c9uK/7vrOyImlF+7y3BpYm6IJsGlazkl5nLw2DbKhOdABOYqHBirMKZk 8Jv6la+UD6fKiBy4LAnclCIxffJCtIUqEB304EvYnk+hD5lbDr0sVFwhbu8vfYz8TRs9 XjyeXEOmeK1uXmoD81/bZ4fV94QQQTa4k0ZkqhVxN3+UkBajLjsRJbuo9sJAm7Vyl6F+ 2/fGTYlRmzCpjOM8Z/R9yeT/qkmxM1l8L4hTjLZvYNP24L369Emu3LpKoROVp10loCAA guqdyS2VmFYcSsr693B4eD7HOn9EeCL1Zg1uW8AY1Yucy80JHtWjue/vm+pg6yPxNMAd 3bCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792152431; x=1792757231; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=iXIirrV6s7RrP0mU2+oNXlM0e7bTHvInhCL9i965qeY=; b=jE8vz0HngyXsNyQdu4GdloD2d2MKgfEhAOR7zErPKMRayv0x/hIDEfBV7icE7VIWYv QSmJ/Ek+KSin03pX/SJeigGtw9cIvPTo0U9bVWjSIy7wKTSM2hreVIM6c26BR//l7isK p3rhKkKeOUdqvLvNEkvGmI9YmdYWtyHzJszMiaDFHrJ23Ypftu/XUlRdPLZ6OT5t2wGJ WzH5J41lF2K2/pWR7YXfhrSaGXwKAva88FY4sBsT7JhSBfqKlWgwfE2WY8dQTzFhBN8E qkG0KYqskZ2ZW/aVWzUfRbJDqODuOwUQM89AAEacvdVApOv7P8620L+avil5mH6ETj31 iOBA== X-Gm-Message-State: AFq9FYIlyfmkBOazm0NixXkS/uXB9YLLo77UauQMHhBXMQjKNBuUvkm4 c9NQUROpW6WOFVaNJtTtKhiznIyDE1rCw0XOMt1+W02c/wjC5B67Kus3UuLbcQ== X-Gm-Gg: AYBFou365pctx/KFZC+uTd6U3EoYVUTtzVGWUvKjQh7vdr9RLD+XnV+xcKEZVDhJ9St /R6p4fNrS8lvXlmolzZbLUaEsYM2iXRsh1/J1xcogTpSpMUGj5SprZsikrUuPegTfEOtoMmF2Ps odjNQbG2zFsHUAwNn0/voPU0YjPfpQmY4djK1UbNQqbEBf/G29ZtyT/39Q4k54lxVuVHFN/WHKB NV1pHXcbfu6cC8XLQFbPhPGviyJcNuG735yPPCcdUZujU/Y9Z5qPHvqy/D+nDy3jvrjv25thSgc YekIKnvA68fCEIZhBIhY9RYJG8upExUH+6yOhvgi9Cc3mfrDfhomfshQlOtINUSs/lFyaPCwMA1 bzjPBT1CE+aOMcj/Xe10dTjl2cNxGc5Vhr83Yn9cO1eQkRyGSBGzWUqUSYB+Mh/Q3k7UEuid7yJ 1nP9gOleGuI8w42WxRZQbY9VGzIElT084tNbzZhZn5Rup5GjYFG2IGChY4lAkufg2Wtpg81Byh/ aBjL/EYwxaOMJIxzqLdPRgpBzFlNMlL6VHAQYVJl/PoXbHyp2G+RQ== X-Received: by 2002:a05:600c:699a:b0:4a1:d36f:1ba0 with SMTP id 5b1f17b1804b1-4a1d36f1d57mr12469475e9.35.1792152430434; Fri, 16 Oct 2026 05:07:10 -0700 (PDT) From: Alexey Gladkov To: make-initrd@lists.altlinux.org Date: Fri, 16 Oct 2026 14:06:16 +0200 Message-ID: X-Mailer: git-send-email 2.56.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [make-initrd] [PATCH 0/2] runtime: Fix console locking 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: Fri, 16 Oct 2026 12:07:18 -0000 Archived-At: List-Archive: Кажется я нашёл причину почему rdshell стартует до завершения всех сервисов. Причина этого ещё один баг с fd_lock 90 /dev/console. По задумке при старте runlevel 3 rc захватывает fd_lock 90 /dev/console и держит его до конца запуска всех S*-сервисов. Поэтому rootdelayd, запущенный в S01:rootdelay, должен был ждать на fd_lock 90 /dev/console, пока `rc 3` не запустит все сервисы. Но в момент старта /etc/rc.d/rc 3 сервис S04:mountfs ещё не отработал, и /dev это обычная директория на ramfs (/). Поэтому `rc 3` лочит inode /dev/console на ramfs. Потом S04:mountfs монтирует поверх /dev файловую систему devtmpfs (или tmpfs). Теперь /dev/console это новый inode на devtmpfs, а старый inode, залоченный процессом `rc 3`, оказывается перекрыт точкой монтирования /dev. Когда rootdelayd просыпается после `sleep 0.2` как раз во время работы udev/uevent, он вызывает fd_lock 90 /dev/console уже на новом inode /dev/console в devtmpfs, который никем не залочен. В итоге rootdelayd не ждёт окончания `rc 3`, а сразу запускает rdshell параллельно с `rc 3`. То есть у нас тут две пересекающиеся проблемы с блокировками. Я не хотел плодить lock-файлы, но использовать /dev/console оказалось плохой идеей. Я запушил в for-master патч Егора и свой фикс. Тесты на altlinux уже успешно прошли. https://github.com/osboot/make-initrd/compare/for-master?expand=1 Alexey Gladkov (1): runtime: Fix console lock shadowing by /dev mount Egor Shestakov (1): runtime: Fix a lock leak in rootdelayd features/fsck/data/lib/uevent/handlers/040-mountdev | 2 +- features/luks/data/lib/uevent/handlers/085-luks | 2 +- features/network/data/etc/rc.d/init.d/network-up | 3 --- features/runtime/data/etc/rc.d/rc | 2 +- features/runtime/data/init | 1 + .../data/lib/uevent/handlers/mount/900-localdev | 2 +- features/runtime/data/sbin/rootdelayd | 13 ++++++++----- .../data/lib/uevent/handlers/040-sshfsroot | 2 +- features/zfs/data/sbin/ueventd-zfs | 2 +- 9 files changed, 15 insertions(+), 14 deletions(-) -- 2.56.0