Summary: | mdassemble crashes | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey Bolshakov <sbolshakov> | ||||||||
Component: | mdadm | Assignee: | evseev <evseev> | ||||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||||
Severity: | blocker | ||||||||||
Priority: | P2 | CC: | mike, shaba, thresh, vitty, vsu | ||||||||
Version: | unstable | ||||||||||
Hardware: | all | ||||||||||
OS: | Linux | ||||||||||
Attachments: |
|
Description
Sergey Bolshakov
2006-12-02 16:04:43 MSK
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 работает. |