When setting up a new OCFS2 cluster under OpenSUSE 10.3 (ocfs2-tools-1.2.6-18, kernel-xen-2.6.22.17-0.1), I discovered that mounted.ocfs2 no longer works, but segfaults. It just prints "segmentation fault" and no other output. Initially I thought it might be a bug in the SUSE package, but I see the same behavior in mounted.ocfs2 from ocfs2-tools 1.2.6 built from source. Versions 1.2.7 and 1.3.9 also segfault, while the mounted.ocfs2 binary from OpenSUSE 10.2 (ocfs2-tools-1.2.2-11) works just fine. I thought I'd check with the list before filing a bug, in case there's something obvious. After installing the ocfs2-tools-debuginfo packages, I was able to get a useful backtrace: vpr-app-02:~ # gdb /sbin/mounted.ocfs2 ./core.7351 GNU gdb 6.6.50.20070726-cvs Copyright (C) 2007 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-suse-linux"... Using host libthread_db library "/lib64/libthread_db.so.1". Reading symbols from /lib64/libcom_err.so.2...done. Loaded symbols for /lib64/libcom_err.so.2 Reading symbols from /lib64/libuuid.so.1...done. Loaded symbols for /lib64/libuuid.so.1 Reading symbols from /lib64/libpthread.so.0...done. Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Core was generated by `mounted.ocfs2 /dev/evms/ocfs_san/web'. Program terminated with signal 11, Segmentation fault. #0 io_open (name=0x10 <Address 0x10 out of bounds>, flags=0, channel=0x60d120) at unix_io.c:89 89 if (!name || !*name) (gdb) bt #0 io_open (name=0x10 <Address 0x10 out of bounds>, flags=0, channel=0x60d120) at unix_io.c:89 #1 0x0000000000405385 in ocfs2_open (name=0x10 <Address 0x10 out of bounds>, flags=0, superblock=0, block_size=0, ret_fs=0x7fff4a882b38) at openfs.c:197 #2 0x0000000000402365 in ocfs2_check_heartbeats (dev_list=0x7fff4a882b80, ignore_local=1) at checkhb.c:103 #3 0x00000000004021bf in main (argc=<value optimized out>, argv=0x7fff4a882b98) at mounted.c:252 #4 0x00002adb60a81b54 in __libc_start_main () from /lib64/libc.so.6 #5 0x0000000000401bc9 in _start () It doesn't seem to matter the device given to mounted.ocfs2 -- /dev/null, foobar, whatever, it just segfaults, and name==0x10 in every case.
My hunch is you are running into this one. https://bugzilla.novell.com/show_bug.cgi?id=374353 Stupid bug. Trivial fix. Will be fixed soon. Andrew Daugherity wrote:> When setting up a new OCFS2 cluster under OpenSUSE 10.3 (ocfs2-tools-1.2.6-18, kernel-xen-2.6.22.17-0.1), I discovered that mounted.ocfs2 no longer works, but segfaults. It just prints "segmentation fault" and no other output. > > Initially I thought it might be a bug in the SUSE package, but I see the same behavior in mounted.ocfs2 from ocfs2-tools 1.2.6 built from source. Versions 1.2.7 and 1.3.9 also segfault, while the mounted.ocfs2 binary from OpenSUSE 10.2 (ocfs2-tools-1.2.2-11) works just fine. > > I thought I'd check with the list before filing a bug, in case there's something obvious. > > After installing the ocfs2-tools-debuginfo packages, I was able to get a useful backtrace: > > vpr-app-02:~ # gdb /sbin/mounted.ocfs2 ./core.7351 > GNU gdb 6.6.50.20070726-cvs > Copyright (C) 2007 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "x86_64-suse-linux"... > Using host libthread_db library "/lib64/libthread_db.so.1". > Reading symbols from /lib64/libcom_err.so.2...done. > Loaded symbols for /lib64/libcom_err.so.2 > Reading symbols from /lib64/libuuid.so.1...done. > Loaded symbols for /lib64/libuuid.so.1 > Reading symbols from /lib64/libpthread.so.0...done. > Loaded symbols for /lib64/libpthread.so.0 > Reading symbols from /lib64/libc.so.6...done. > Loaded symbols for /lib64/libc.so.6 > Reading symbols from /lib64/ld-linux-x86-64.so.2...done. > Loaded symbols for /lib64/ld-linux-x86-64.so.2 > Core was generated by `mounted.ocfs2 /dev/evms/ocfs_san/web'. > Program terminated with signal 11, Segmentation fault. > #0 io_open (name=0x10 <Address 0x10 out of bounds>, flags=0, channel=0x60d120) at unix_io.c:89 > 89 if (!name || !*name) > (gdb) bt > #0 io_open (name=0x10 <Address 0x10 out of bounds>, flags=0, channel=0x60d120) at unix_io.c:89 > #1 0x0000000000405385 in ocfs2_open (name=0x10 <Address 0x10 out of bounds>, flags=0, superblock=0, block_size=0, > ret_fs=0x7fff4a882b38) at openfs.c:197 > #2 0x0000000000402365 in ocfs2_check_heartbeats (dev_list=0x7fff4a882b80, ignore_local=1) at checkhb.c:103 > #3 0x00000000004021bf in main (argc=<value optimized out>, argv=0x7fff4a882b98) at mounted.c:252 > #4 0x00002adb60a81b54 in __libc_start_main () from /lib64/libc.so.6 > #5 0x0000000000401bc9 in _start () > > It doesn't seem to matter the device given to mounted.ocfs2 -- /dev/null, foobar, whatever, it just segfaults, and name==0x10 in every case. >