[Ocfs2-users] Floating Point Exception
Jeffery P. Humes
jeff at bofus.org
Wed May 17 06:10:37 CDT 2006
Sunil,
Your help is very appreciated, here is the gdb run:
[mkfs.ocfs2]# gdb ./mkfs.ocfs2
GNU gdb Red Hat Linux (6.3.0.0-1.84rh)
Copyright 2004 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 "i386-redhat-linux-gnu"...Using host
libthread_db library "/lib/libthread_db.so.1".
(gdb) set args -b 4K -C 32K -N 4 -L mail_data /dev/etherd/e0.12p1
(gdb) b ocfs2_get_device_sectsize
Breakpoint 1 at 0x805498f: file getsectsize.c, line 50.
(gdb) b ocfs2_get_device_size
Breakpoint 2 at 0x8054a93: file getsize.c, line 152.
(gdb) run
Starting program:
/usr/src/INSTALL_OCFS/ocfs2-tools-1.2.1/mkfs.ocfs2/mkfs.ocfs2 -b 4K -C
32K -N 4 -L mail_data /dev/etherd/e0.12p1
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0x5da000
mkfs.ocfs2 1.2.1
Breakpoint 1, ocfs2_get_device_sectsize (file=0x96160e0
"/dev/etherd/e0.12p1", sectsize=0xbfa4ea20) at getsectsize.c:50
50 fd = open64(file, O_RDONLY);
(gdb) n
54 if (fd < 0)
(gdb) n
58 if (ioctl(fd, BLKSSZGET, sectsize) >= 0) {
(gdb) n
59 close(fd);
(gdb) n
60 return 0;
(gdb) n
66 }
(gdb) n
fill_defaults (s=0x9616048) at mkfs.c:965
965 if (err) {
(gdb) c
Continuing.
Breakpoint 2, ocfs2_get_device_size (file=0x96160e0
"/dev/etherd/e0.12p1", blocksize=4096, retblocks=0xbfa4ea18)
at getsize.c:152
152 int fd, rc = 0;
(gdb) n
153 int valid_blkgetsize64 = 1;
(gdb) n
171 fd = open64(file, O_RDONLY);
(gdb) n
175 if (fd < 0)
(gdb) n
190 if ((uname(&ut) == 0) &&
(gdb) n
195 if (valid_blkgetsize64 &&
(gdb) n
202 *retblocks = size64 / blocksize;
(gdb) n
203 goto out;
(gdb) n
291 close(fd);
(gdb) n
292 return rc;
(gdb) n
293 }
(gdb) n
fill_defaults (s=0x9616048) at mkfs.c:993
993 if (err) {
(gdb) n
1000 if (s->hb_dev) {
(gdb) n
1030 s->volume_size_in_blocks = ret;
(gdb) n
1031 if (s->specified_size_in_blocks) {
(gdb) n
1047 s->volume_size_in_bytes = s->volume_size_in_blocks *
blocksize;
(gdb) n
1049 if (!s->blocksize) {
(gdb) n
1076 s->blocksize_bits = get_bits(s, s->blocksize);
(gdb) n
1078 if (!s->cluster_size) {
(gdb) n
1089 s->cluster_size_bits = get_bits(s, s->cluster_size);
(gdb) n
1092 s->volume_size_in_clusters = s->volume_size_in_bytes >>
s->cluster_size_bits;
(gdb) n
1093 tmp = (uint64_t)s->volume_size_in_clusters;
(gdb) n
1094 s->volume_size_in_bytes = tmp << s->cluster_size_bits;
(gdb) n
1095 s->volume_size_in_blocks = s->volume_size_in_bytes >>
s->blocksize_bits;
(gdb) n
1097 s->reserved_tail_size = 0;
(gdb) n
1099 ocfs2_calc_cluster_groups(s->volume_size_in_clusters,
s->blocksize,
(gdb) n
Program received signal SIGFPE, Arithmetic exception.
0x0805f003 in __udivdi3 ()
(gdb) n
Single stepping until exit from function __udivdi3,
which has no line number information.
Program terminated with signal SIGFPE, Arithmetic exception.
Sunil Mushran wrote:
> So the exception is generated when mkfs is computing the size of the
> device.
> It could be due to an unexpected value returned by one of the ioctls.
>
> Try this:
> # cd /../ocfs2-tools-1.2.1
> # ./configure --enable-debug
> # make all
> # cd mkfs.ocfs2
> # gdb ./mkfs.ocfs2
> (gdb) set args -b 4K -C 32K -N 4 -L mail_data /dev/etherd/e0.12p1
> (gdb) b ocfs2_get_device_sectsize
> (gdb) b ocfs2_get_device_size
>
> Set break point at ocfs2_get_device_sectsize() and
> ocfs2_get_device_size()
> and run. See what the sectsize is. Then step thru the code in
> get_device_size.
>
> If this is too much, at least generate the coredump and make it available
> for download.
>
> Please let me know the results.
>
> Thanks
> Sunil
>
> Jeffery P. Humes wrote:
>
>> Here is the output of an ltrace.
>> Please note that this is trying to create a partition on a Coraid AOE
>> device.
>>
>> -JPH
>>
>> # ltrace mkfs.ocfs2 -v -b 4K -C 32K -N 4 -L mail_data
>> /dev/etherd/e0.12p1
>>
>> __libc_start_main(0x804993d, 11, 0xbfa86b24, 0x805f1bc, 0x805f218
>> <unfinished ...>
>> setbuf(0x8805e0,
>> NULL) = <void>
>> setbuf(0x880480,
>> NULL) = <void>
>> signal(15,
>> 0x8049875) = NULL
>> signal(2,
>> 0x8049875) = NULL
>> malloc(8)
>> = 0x85de008
>> malloc(8)
>> = 0x85de018
>> malloc(8)
>> = 0x85de028
>> __xpg_basename(0xbfa87be4, 135168, 0, 0,
>> 0x757fb4) = 0xbfa87be4
>> getopt_long(11, 0xbfa86b24, "b:C:L:N:J:vqVFHxT:", 0x80635e0,
>> NULL) = 118
>> getopt_long(11, 0xbfa86b24, "b:C:L:N:J:vqVFHxT:", 0x80635e0,
>> NULL) = 98
>> strtoull(0xbfa87bf5, 0xbfa863cc, 0, 0,
>> 0) = 4
>> getopt_long(11, 0xbfa86b24, "b:C:L:N:J:vqVFHxT:", 0x80635e0,
>> NULL) = 67
>> strtoull(0xbfa87bfb, 0xbfa863cc, 0, 0,
>> 0) = 32
>> getopt_long(11, 0xbfa86b24, "b:C:L:N:J:vqVFHxT:", 0x80635e0,
>> NULL) = 78
>> strtoul(0xbfa87c02, 0xbfa86440, 0, 0,
>> 0x757fb4) = 4
>> getopt_long(11, 0xbfa86b24, "b:C:L:N:J:vqVFHxT:", 0x80635e0,
>> NULL) = 76
>> strdup("mail_data")
>> = 0x85de038
>> getopt_long(11, 0xbfa86b24, "b:C:L:N:J:vqVFHxT:", 0x80635e0,
>> NULL) = -1
>> malloc(148)
>> = 0x85de048
>> memset(0x85de048, '\000',
>> 148) = 0x85de048
>> fprintf(0x880480, "%s %s\n", "mkfs.ocfs2", "1.2.1"mkfs.ocfs2 1.2.1
>> ) = 17
>> strdup("/dev/etherd/e0.12p1")
>> = 0x85de0e0
>> time(NULL)
>> = 1147812553
>> __xstat(3, "/dev/etherd/e0.12p1",
>> 0xbfa85f40) = 0
>> fopen("/proc/swaps",
>> "r") = 0x85de0f8
>> fgets("Filename\t\t\t\tType\t\tSize\tUsed\tPrio"..., 1024,
>> 0x85de0f8) = 0xbfa85f98
>> feof(0x85de0f8)
>> = 0
>> fgets("/dev/mapper/VolGroup00-LogVol00 "..., 1024,
>> 0x85de0f8) = 0xbfa85f98
>> strchr("/dev/mapper/VolGroup00-LogVol00 "..., '
>> ') = " partition\t3047416\t88\t-1"...
>> strchr("/dev/mapper/VolGroup00-LogVol00",
>> '\t') = NULL
>> strcmp("/dev/mapper/VolGroup00-LogVol00",
>> "/dev/etherd/e0.12p1") = 1
>> __xstat(3, "/dev/mapper/VolGroup00-LogVol00",
>> 0xbfa85f40) = 0
>> feof(0x85de0f8)
>> = 0
>> fgets("/dev/mapper/VolGroup00-LogVol00", 1024,
>> 0x85de0f8) = NULL
>> fclose(0x85de0f8)
>> = 0
>> setmntent("/proc/mounts",
>> "r") = 0x85de0f8
>> __xstat(3, "/dev/etherd/e0.12p1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "rootfs") = -1
>> __xstat(3, "rootfs",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev") = 1
>> __xstat(3, "/dev",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/root") = -1
>> __xstat(3, "/dev/root",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/proc") = -1
>> __xstat(3, "/proc",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/proc/bus/usb") = -1
>> __xstat(3, "/proc/bus/usb",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/sys") = -1
>> __xstat(3, "/sys",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/devpts") = 1
>> __xstat(3, "/dev/devpts",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/sda1") = -1
>> __xstat(3, "/dev/sda1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/shm") = -1
>> __xstat(3, "/dev/shm",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "none") = -1
>> __xstat(3, "none",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "sunrpc") = -1
>> __xstat(3, "sunrpc",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "configfs") = -1
>> __xstat(3, "configfs",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "ocfs2_dlmfs") = -1
>> __xstat(3, "ocfs2_dlmfs",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "automount(pid2223)") = -1
>> __xstat(3, "automount(pid2223)",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/etherd/e0.11p1") = 1
>> __xstat(3, "/dev/etherd/e0.11p1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/BaculaVG/BaculaDataLV_1") = 1
>> __xstat(3, "/dev/BaculaVG/BaculaDataLV_1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/BackupDataVG/BackupDataLV_1") = 1
>> __xstat(3, "/dev/BackupDataVG/BackupDataLV_1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "nfsd") = -1
>> __xstat(3, "nfsd",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "knfiler:/vol/vol0") = -1
>> __xstat(3, "knfiler:/vol/vol0",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = NULL
>> __xstat(3, "/",
>> 0xbfa862f0) = 0
>> endmntent(0x85de0f8)
>> = 1
>> setmntent("/etc/mtab",
>> "r") = 0x85de0f8
>> __xstat(3, "/dev/etherd/e0.12p1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/mapper/VolGroup00-LogVol01") = -1
>> __xstat(3, "/dev/mapper/VolGroup00-LogVol01",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/proc") = -1
>> __xstat(3, "/dev/proc",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/sys") = -1
>> __xstat(3, "/dev/sys",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/devpts") = 1
>> __xstat(3, "/dev/devpts",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/sda1") = -1
>> __xstat(3, "/dev/sda1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/shm") = -1
>> __xstat(3, "/dev/shm",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "none") = -1
>> __xstat(3, "none",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "sunrpc") = -1
>> __xstat(3, "sunrpc",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "configfs") = -1
>> __xstat(3, "configfs",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "ocfs2_dlmfs") = -1
>> __xstat(3, "ocfs2_dlmfs",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "automount(pid2223)") = -1
>> __xstat(3, "automount(pid2223)",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/etherd/e0.11p1") = 1
>> __xstat(3, "/dev/etherd/e0.11p1",
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/mapper/BaculaVG-BaculaDataL"...) = -1
>> __xstat(3, "/dev/mapper/BaculaVG-BaculaDataL"...,
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "/dev/mapper/BackupDataVG-BackupD"...) = -1
>> __xstat(3, "/dev/mapper/BackupDataVG-BackupD"...,
>> 0xbfa862f0) = 0
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "nfsd") = -1
>> __xstat(3, "nfsd",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = 0x8821e0
>> strcmp("/dev/etherd/e0.12p1",
>> "knfiler:/vol/vol0") = -1
>> __xstat(3, "knfiler:/vol/vol0",
>> 0xbfa862f0) = -1
>> getmntent(0x85de0f8)
>> = NULL
>> __xstat(3, "/",
>> 0xbfa862f0) = 0
>> endmntent(0x85de0f8)
>> = 1
>> __xstat(3, "/dev/etherd/e0.12p1",
>> 0xbfa863d4) = 0
>> open("/dev/etherd/e0.12p1", 128,
>> 00) = 3
>> close(3)
>> = 0
>> malloc(132)
>> = 0x85de0f8
>> malloc(20)
>> = 0x85de180
>> malloc(20)
>> = 0x85de198
>> strcpy(0x85de198,
>> "/dev/etherd/e0.12p1") = 0x85de198
>> open64("/dev/etherd/e0.12p1", 16386,
>> 036706623) = 3
>> posix_memalign(0xbfa861b8, 512, 512, 0x8057284,
>> 20) = 0
>> pread64(3, 0x85df400, 512, 0,
>> 0) = 512
>> free(0x85df400)
>> = <void>
>> uname(0xbfa86206)
>> = 0
>> malloc(20)
>> = 0x85de1b0
>> strcpy(0x85de1b0,
>> "/dev/etherd/e0.12p1") = 0x85de1b0
>> posix_memalign(0xbfa863e0, 512, 512, 0x8057284,
>> 0) = 0
>> pread64(3, 0x85df400, 512, 0,
>> 0) = 512
>> free(0x85df400)
>> = <void>
>> posix_memalign(0xbfa863e0, 512, 512, 0x8057284,
>> 0x85df409) = 0
>> pread64(3, 0x85df400, 512, 1024,
>> 0) = 0
>> free(0x85df400)
>> = <void>
>> free(0x85de1b0)
>> = <void>
>> close(3)
>> = 0
>> free(0x85de198)
>> = <void>
>> free(0x85de180)
>> = <void>
>> free(0x85de0f8)
>> = <void>
>> open64("/dev/etherd/e0.12p1", 16386,
>> 027752076021) = 3
>> getpagesize()
>> = 4096
>> open64("/dev/etherd/e0.12p1", 0,
>> 01001105565) = 4
>> ioctl(4, 4712,
>> 0xbfa86450) = 0
>> close(4)
>> = 0
>> open64("/dev/etherd/e0.12p1", 0,
>> 01027372000) = 4
>> uname(0xbfa8621e)
>> = 0
>> ioctl(4, -2147216782,
>> 0xbfa86210) = 0
>> close(4)
>> = 0
>> --- SIGFPE (Floating point exception) ---
>> +++ killed by SIGFPE +++
>>
>> Sunil Mushran wrote:
>>
>>> Did you try strace or ltrace?
>>>
>>> Jeffery P. Humes wrote:
>>>
>>>> I have a Fedora Core server running:
>>>> Fedora Core release 4 (Stentz)
>>>> kernel version: 2.6.15-1.1833_FC4smp
>>>> ( I have also tried kernel version: 2.6.16-1.2108_FC4smp)
>>>>
>>>> I compiled the ocfs2 and ocfs2-tools using the following steps:
>>>>
>>>> # MODULES:
>>>> tar zxvpf ocfs2-1.2.1.tar.gz
>>>> cd ocfs2-1.2.1
>>>> ./configure
>>>> make
>>>> make install
>>>>
>>>> # TOOLS:
>>>> tar zxf ocfs2-tools-1.2.1.tar.gz
>>>> cd ocfs2-tools-1.2.1
>>>> ./configure --enable-dynamic-fsck=yes --enable-dynamic-ctl=yes
>>>> --enable-ocfs2console=yes
>>>> make
>>>> make install
>>>>
>>>> cp vendor/common/ocfs2.init /etc/init.d/ocfs2
>>>> cp vendor/common/o2cb.init /etc/init.d/o2cb
>>>> cp vendor/common/o2cb.sysconfig /etc/sysconfig/o2cb
>>>>
>>>>
>>>> I have the cluster.conf configured and the cluster is running.
>>>>
>>>>
>>>>
>>>> Whenever I try to create an ocfs2 FS, I get the following error:
>>>> # mkfs.ocfs2 -v -b 4K -C 32K -N 4 -L mail_data /dev/etherd/e0.12p1
>>>> mkfs.ocfs2 1.2.1
>>>> Floating point exception
>>>>
>>>>
>>>> any comments or assistance would be appreciated.
>>>>
>>>> -Jeffery P Humes
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> _______________________________________________
>>>> Ocfs2-users mailing list
>>>> Ocfs2-users at oss.oracle.com
>>>> http://oss.oracle.com/mailman/listinfo/ocfs2-users
>>>>
>>>
>>
>> --
>> It's a trick, get an axe.
>> - Ash -
>>
>
--
It's a trick, get an axe.
- Ash -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://oss.oracle.com/pipermail/ocfs2-users/attachments/20060517/f295e4a6/attachment-0001.html
More information about the Ocfs2-users
mailing list