mdadm-2.5.6-alt1: # /sbin/mdassemble Segmentation fault # собранный динамически с glibc работает нормально. Предыдущие сборки работали нормально.
Created attachment 1695 [details] mdadm.conf
Не могу воспроизвести. Моя конфигурация: # egrep -v '^$' /etc/mdadm.conf | egrep -v '^#' MAILADDR root PROGRAM /usr/sbin/mdadm-syslog-events ARRAY /dev/md0 UUID=c72dca0f:89258766:c4fc8ff9:aa0fdc2a # ./mdassemble mdadm: /dev/md0 has been started with 2 drives. # ./mdadm -D /dev/md0 /dev/md0: Version : 00.90.00 Creation Time : Wed Jul 27 21:03:57 2005 Raid Level : raid1 Array Size : 96256 (94.02 MiB 98.57 MB) Device Size : 96256 (94.02 MiB 98.57 MB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Jan 4 11:18:34 2007 State : active Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 UUID : c72dca0f:89258766:c4fc8ff9:aa0fdc2a Events : 0.9 Number Major Minor RaidDevice State 0 3 8 0 active sync /dev/hda8 1 3 9 1 active sync /dev/hda9 # ./mdadm -V mdadm - v2.5.6 - 9 November 2006 # grep diet ./mdassemble Binary file ./mdassemble matches
Сейчас в Сизиф ушла сборка 2.6-alt1. В ней этот баг остался?
2.6-alt2, падает, как и раньше. у меня raid1 на двух дисках целиком, если это важно.
Created attachment 1766 [details] mdadm-2.6-alt2.1.src.rpm.diff Это несовместимость текущего релиза dietlibc с реализацией -fstack-protector в текущей версии gcc4.1, которая там включена по умолчанию. Обходится сборкой с -fno-stack-protector.
Не совсем понятно, зачем в alt2.1 делается одновременно и "%define mdassemble_cflags -fno-stack-protector", и "BuildPreReq: dietlibc >= 0.30-alt2". По идее, достаточно чего-то одного: mdassemble_flags должен нормально подружить gcc 4.1 со старой dietlibc, dietlibc 0.30-alt2 должна нормально работать с gcc 4.1 без доп.флагов. Второй вариант строже, первый проще портировать на ALM24.
Created attachment 1767 [details] Fixup from evseev@ (also fixes #10727 and cleanups patchset)
(In reply to comment #6) > dietlibc 0.30-alt2 должна нормально работать с gcc 4.1 без доп.флагов. К сожалению, в данный момент это не так. Хотя на самом деле старые бинарные сборки dietlibc всё-таки работают - они просто не пересобираются из исходников при использовании нового gcc4.1 (падают в процессе сборки, так что пропустить эту проблему незаметно всё-таки не удастся). А вот польза от условных BuildRequires сомнительна - зависимости фиксируются в момент сборки src.rpm. > Второй вариант строже, первый проще портировать на ALM24. Туда это изменение портировать не обязательно - там в gcc не было -fstack-protector по умолчанию (более того, я подозреваю, что версия gcc из ALM24 вообще не поддерживает опцию -fno-stack-protector).
(In reply to comment #8) > (In reply to comment #6) >> dietlibc 0.30-alt2 должна нормально работать с gcc 4.1 без доп.флагов. > > К сожалению, в данный момент это не так. Хотя на самом деле старые бинарные > сборки dietlibc всё-таки работают - они просто не пересобираются из исходников > при использовании нового gcc4.1 (падают в процессе сборки, так что пропустить > эту проблему незаметно всё-таки не удастся). Значит, тем более незачем указывать требуемую версию - в среде с gcc4.1 diet будет либо иметь её, либо отсутствовать вообще. > А вот польза от условных BuildRequires сомнительна - зависимости фиксируются в > момент сборки src.rpm. Как тогда лучше поступить? Хочется иметь общий spec для всех сборок.
В dietlibc-0.30-alt3 проблема устранена правильным способом - теперь для сборки достаточно использовать CC='diet gcc', опция -fno-stack-protector добавляется автоматически.
Comment on attachment 1766 [details] mdadm-2.6-alt2.1.src.rpm.diff Такое изменение в spec больше не нужно - достаточно BuildPreReq: dietlibc >= 0.30-alt3 (независимо от архитектуры ).
Subject: Re: [sisyphus] Master upgrade - part 3 (after reboot) From: Sergey Vlasov <vsu@altlinux.ru> To: sisyphus@lists.altlinux.org Date: Fri, 23 Feb 2007 14:55:10 +0300 On Fri, Feb 23, 2007 at 12:30:44PM +0300, Alexander Volkov wrote: > Вот пришлось перезагрузиться вчера - а и не поднимаемся автоматом! > Падает в ремонтную систему на: > starting up raid: (using mdassemble) ... raidstart line 34: Segmentation > fault "$f" В пакете mdadm-2.6-alt2 ещё с прошлого года сломан mdassemble: https://bugzilla.altlinux.org/show_bug.cgi?id=10357 Для устранения этой проблемы достаточно пересобрать пакет с dietlibc-0.30-alt3 (либо без использования dietlibc вообще). Во многих случаях эта проблема не проявляется из-за того, что скрипт /etc/rc.d/scripts/raidstart предпочитает использовать mdadm в случае его доступности, и только при отсутствии mdadm вызывает mdassemble. Однако по каким-то не вполне понятным мне причинам mdadm сейчас располагается не в /sbin, а в /usr/sbin, в результате конфигурации с /usr на отдельном разделе нормально не работают. ----------- /usr именно что отдельно. я положил mdadm в /sbin и поднялся...
Багу закрываю. Поскольку теперь рядом с gcc4.1 в Сизифе лежит свежая версия dietlibc-0.30-alt2, собранная с -fno-stack-protector, а в предыдущих дистрибутивах рядом со старой dietlibc лежит gcc3, то теперь везде присутствует непротиворечивая комбинация пакетов :) Кроме того, начиная с mdadm-2.6.1, сборка кладёт mdadm в /sbin, то есть перестанет mdassemble вызываться, если /usr на отдельном разделе.
mdassemble работает.