[root@hoge ~]# dmesg | grep xfs xfs_db[24513]: segfault at 40 ip 0000003525408dd0 sp 00007fff34d904b8 error 4 in libpthread-2.5.so[3525400000+16000] xfs_db[28592]: segfault at 40 ip 0000003525408dd0 sp 00007fff73492348 error 4 in libpthread-2.5.so[3525400000+16000] xfs_db[24414]: segfault at 40 ip 0000003525408dd0 sp 00007fffdcd64d58 error 4 in libpthread-2.5.so[3525400000+16000] xfs_db[28242]: segfault at 40 ip 0000003525408dd0 sp 00007fff890c31d8 error 4 in libpthread-2.5.so[3525400000+16000]まず、xfs_db なんぞ自分で明示的に動かした記憶がなく、調べたところ system-config-lvm を動かすと、裏で実行されるらしく、再現性を確認しました。
そして、コミュニティ最新版 xfsprogs 3.2.1 に置き換えたところ、segfault が出なくなったことを確認しました。
以下、備忘録、xfsprogs 3.2.1 のビルド手順です。どなたかのご参考まで。
1. xfsprogs-2.9.4-1.el5.centos.src.rpm をダウンロードして展開。この中の SPEC ファイルを利用する。
# rpm -ivh xfsprogs-2.9.4-1.el5.centos.src.rpm ... # cd /usr/src/redhat/SPEC # cp -p xfsprogs.spec xfsprogs.spec.org2. xfsprogs-3.2.1.tar.gz をダウンロードして、/usr/src/redhat/SOURCES へコピー
# cp xfsprogs-3.2.1.tar.gz /usr/src/redhat/SOURCES3. xfsprogs.spec を手直しする。これが少々時間を要しました。差分です。
--- xfsprogs.spec.org 2007-10-20 23:17:33.000000000 +0900 +++ xfsprogs.spec 2014-11-18 07:43:06.000000000 +0900 @@ -1,11 +1,11 @@ Summary: Utilities for managing the XFS filesystem Name: xfsprogs -Version: 2.9.4 -Release: 1%{?dist} +Version: 3.2.1 +Release: 1.el5.staka License: GPL Group: System Environment/Base URL: http://oss.sgi.com/projects/xfs/ -Source0: ftp://oss.sgi.com/projects/xfs/download/cmd_tars/%{name}_%{version}-1.tar.gz +Source0: ftp://oss.sgi.com/projects/xfs/download/cmd_tars/%{name}-%{version}.tar.gz Source1: xfsprogs-wrapper.h BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: autoconf, libtool, gettext @@ -13,7 +13,7 @@ BuildRequires: /usr/include/uuid/uuid.h Provides: xfs-cmds Obsoletes: xfs-cmds <= %{version} -Conflicts: xfsdump < 2.0.0 +Conflicts: xfsdump < 3.0.0 %description A set of commands to use the XFS filesystem, including mkfs.xfs. @@ -69,10 +69,14 @@ rm -f $RPM_BUILD_ROOT/{%{_lib}/*.{la,a,so},%{_libdir}/*.la} # fix up symlink to be correct rm -f $RPM_BUILD_ROOT/%{_libdir}/libhandle.so +mkdir -p $RPM_BUILD_ROOT/%{_libdir} ln -s ../../%{_lib}/libhandle.so.1 $RPM_BUILD_ROOT/%{_libdir}/libhandle.so # remove non-versioned docs location rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xfsprogs/ +mkdir -p $RPM_BUILD_ROOT/usr/sbin +(cd $RPM_BUILD_ROOT/sbin ; mv xfs_{admin,bmap,copy,db,estimate,freeze,fsr,growfs,info,io,logprint,mdrestore,metadump,mkfile,ncheck,quota,rtcp} ../usr/sbin) + # ugly hack to allow parallel install of 32-bit and 64-bit -devel packages: mv -f $RPM_BUILD_ROOT%{_includedir}/xfs/platform_defs.h \ $RPM_BUILD_ROOT%{_includedir}/xfs/platform_defs-%{_arch}.h @@ -89,11 +93,11 @@ %files -f %{name}.lang %defattr(-,root,root) -%doc doc/CHANGES doc/COPYING doc/CREDITS doc/PORTING README +%doc doc/CHANGES.gz doc/COPYING doc/CREDITS README /sbin/fsck.xfs /sbin/mkfs.xfs /sbin/xfs_repair -/%{_lib}/*.so.* +%attr(0644,root,root) /%{_lib}/*.so.* %{_mandir}/man8/* %{_mandir}/man5/* %{_sbindir}/* @@ -101,12 +105,15 @@ %files devel %defattr(-,root,root) %{_mandir}/man3/* -%{_includedir}/disk +#%{_includedir}/disk %{_includedir}/xfs -%{_libdir}/*.a +#%{_libdir}/*.a %{_libdir}/*.so %changelog +* Sat Nov 15 2014 s-taka4. RPM パッケージをビルド。3.2.1-1 +- upgraded to upstream version 3.2.1 + * Sat Oct 20 2007 Johnny Hughes 2.9.4-1 - upgraded to upstream version 2.9.4-1
# rpmbuild -ba xfsprogs.spec ... # ls -1 /usr/src/redhat/RPMS/x86_64/xfsprogs-* /usr/src/redhat/RPMS/x86_64/xfsprogs-3.2.1-1.el5.staka.x86_64.rpm /usr/src/redhat/RPMS/x86_64/xfsprogs-debuginfo-3.2.1-1.el5.staka.x86_64.rpm /usr/src/redhat/RPMS/x86_64/xfsprogs-devel-3.2.1-1.el5.staka.x86_64.rpm # ls -1 /usr/src/redhat/SRPMS/xfsprogs-* /usr/src/redhat/SRPMS/xfsprogs-3.2.1-1.el5.staka.src.rpm5. 出来上がった RPM パッケージをインストール。
# cd /usr/src/redhat/RPMS/x86_64 # rpm -Uvh xfsprogs-3.2.1-1.el5.staka.x86_64.rpm xfsprogs-devel-3.2.1-1.el5.staka.x86_64.rpm
xfsdump については、Fedora 21 のパッケージ(xfsdump-3.1.4-2.fc21.src.rpm)を利用して、CentOS 5 向けに RPM 再ビルドしました。SPEC ファイルの差分は次の通りです。
--- xfsdump.spec.org 2014-08-19 13:24:24.000000000 +0900 +++ xfsdump.spec 2014-11-15 22:11:10.000000000 +0900 @@ -1,7 +1,7 @@ Summary: Administrative utilities for the XFS filesystem Name: xfsdump Version: 3.1.4 -Release: 2%{?dist} +Release: 2.el5.staka # Licensing based on generic "GNU GENERAL PUBLIC LICENSE" # in source, with no mention of version. License: GPL+ @@ -10,7 +10,7 @@ Source0: ftp://oss.sgi.com/projects/xfs/cmd_tars/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libtool, gettext, gawk -BuildRequires: xfsprogs-devel, libuuid-devel, libattr-devel ncurses-devel +BuildRequires: xfsprogs-devel, libattr-devel, ncurses-devel Requires: xfsprogs >= 2.6.30, attr >= 2.0.0 %description @@ -65,6 +65,9 @@ %{_sharedstatedir}/xfsdump/inventory %changelog +* Sat Nov 15 2014 s-taka- 3.1.4-2.el5.staka +- Rebuilt for EL5 + * Mon Aug 18 2014 Fedora Release Engineering - 3.1.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
■関連記事
CentOS 5 + UEK で ZFS on Linux を利用
CentOS 5 + UEKr2 で Btrfs raid1