[Gluster-users] Error report: glusterfs2.0rc4 abend -- "readv failed (Bad address) "
Andrew McGill
list2008 at lunch.za.net
Thu Mar 19 11:35:18 UTC 2009
On Thursday 19 March 2009 11:06:23 Anand Avati wrote:
> On Thu, Mar 19, 2009 at 2:05 PM, Andrew McGill <list2008 at lunch.za.net>
wrote:
> > Hi Anand,
> >
> > I found two core dump in /, and did a backtrace. In both cases, the
> > error position is the abort() call in fuse-bridge.c:2583 --
> >
> > 2583 ERR_ABORT (buf->data);
>
> Do you know if the system was low on memory? Have you tuned the
> overcommit ratio in /proc by any chance? calloc returns NULL only
> under dire circumstances.
>
> Avati
The system has 1Gb of RAM and 2GB of swap. The core dumps are about as big as
the available memory:
[root at backup5 /]# ls -la core.* -h
-rw------- 1 root root 3.0G Mar 14 13:35 core.23239
-rw------- 1 root root 2.9G Mar 14 22:24 core.28543
The core dump tells me that it was allocating another 125.9 kb of memory at
the time:
Smaller coredump:
(gdb) p res
$3 = 128924
(gdb) p buf
$4 = (data_t *) 0xa816308
(gdb) p *buf
$5 = {is_static = 0 '\0', is_const = 0 '\0', len = 0, vec = 0x0, data = 0x0,
refcount = 1, lock = 1}
Larger coredump:
(gdb) p buf
$1 = (data_t *) 0xb45fc828
(gdb) p res
$2 = 129708
(gdb) p *buf
$3 = {is_static = 0 '\0', is_const = 0 '\0', len = 0, vec = 0x0, data = 0x0,
refcount = 1, lock = 1}
It appears there is no matching free outside of the loop "while
(!fuse_session_exited (priv->se)) {" for both of the CALLOC calls:
char *recvbuf = CALLOC (1, chan_size);
...
buf->data = CALLOC (1, res);
...
I kicked it around a little more, but didn't find anything earth shattering, I
think ...
(gdb) p *priv
$5 = {fd = 8, fuse = 0x0, se = 0x8b65b18, ch = 0x8b65c60, volfile = 0x0,
volfile_size = 0,
mount_point = 0x8b65b00 "/mnt/glusterfs", buf = 0xb45fc828, fuse_thread =
3076221840,
fuse_thread_started = 1 '\001', direct_io_mode = 1, entry_timeout = 1,
attribute_timeout = 1,
first_call_cond = {__data = {__lock = 0, __futex = 2, __total_seq = 1,
__wakeup_seq = 1, __woken_seq = 1,
__mutex = 0x8b65adc, __nwaiters = 0, __broadcast_seq = 1},
__size
= "\000\000\000\000\002\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000�Z�\b\000\000\000\000\001\000\000\000\000\000\000",
__align = 8589934592},
first_call_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __kind =
0, __nusers = 0, {__spins = 0,
__list = {__next = 0x0}}}, __size = '\0' <repeats 23 times>, __align =
0}, first_call = 0 '\0',
strict_volfile_check = _gf_true}
More information about the Gluster-users
mailing list