[Gluster-devel] Crash in dht (3.4.0qa5)
Emmanuel Dreyfus
manu at netbsd.org
Tue Dec 18 19:37:54 UTC 2012
Another crash:
Program terminated with signal 11, Segmentation fault.#0
dht_inode_ctx_time_update (inode=0xb15fa480, this=0xba0e4000,
stat=0x0, post=1) at dht-helper.c:944944
DHT_UPDATE_TIME(time->mtime, time->mtime_nsec,
#0 dht_inode_ctx_time_update (inode=0xb15fa480, this=0xba0e4000,
stat=0x0, post=1) at dht-helper.c:944
#1 0xb9e963d2 in dht_revalidate_cbk (frame=0xbb387930,
cookie=0xbb3856a0, this=0xba0e4000, op_ret=-1, op_errno=57,
inode=0x0, stbuf=0x0, xattr=0x0, postparent=0x0) at dht-common.c:703
#2 0xb9f03967 in afr_lookup (frame=0xbb3856a0, this=0xba0e3000,
loc=0xb9418f98, xattr_req=0xb12775f0) at afr-common.c:2378
#3 0xb9ea1b5c in dht_lookup (frame=0xbb387930, this=0xba0e4000,
loc=0xb144b810, xattr_req=0xb12775f0) at dht-common.c:1491
#4 0xbb79e7e1 in default_lookup (frame=0xbb387930, this=0xba0e5000,
loc=0xb144b810, xdata=0xb12775f0) at defaults.c:1253
#5 0xbb79e7e1 in default_lookup (frame=0xbb387930, this=0xba0e6000,
loc=0xb144b810, xdata=0xb12775f0) at defaults.c:1253
#6 0xb9e639e9 in ioc_lookup (frame=0xbb388030, this=0xba0e7000,
loc=0xb144b810, xdata=0xb12775f0) at io-cache.c:283
#7 0xb9e54afc in qr_lookup (frame=0xbb389a00, this=0xba0e8000,
loc=0xb144b810, xdata=0xb12775f0) at quick-read.c:560
#8 0xb9e4aa39 in mdc_lookup (frame=0xbb3874d0, this=0xba0e9000,
loc=0xb144b810, xdata=0x0) at md-cache.c:753
#9 0xb9e3573e in io_stats_lookup (frame=0xbb385a90, this=0xba0ea000,
loc=0xb144b810, xdata=0x0) at io-stats.c:1864
#10 0xb9ff4cd8 in fuse_lookup_resume (state=0xb144b800)
at fuse-bridge.c:518
#11 0xb9fde905 in fuse_resolve_done (state=<optimized out>)
at fuse-resolve.c:647
#12 fuse_resolve_all (state=<optimized out>) at fuse-resolve.c:676
#13 0xb9fde498 in fuse_resolve (state=0xb144b800) at fuse-resolve.c:633
#14 0xb9fde93d in fuse_resolve_all (state=<optimized out>)
at fuse-resolve.c:672
#15 0xb9fde1b7 in fuse_resolve_continue (state=0xb144b800)
at fuse-resolve.c:692
#16 0xb9fde319 in fuse_resolve_parent (state=0xb144b800)
at fuse-resolve.c:300
#17 0xb9fde4a5 in fuse_resolve (state=0xb144b800) at fuse-resolve.c:626
#18 0xb9fde921 in fuse_resolve_all (state=<optimized out>)
at fuse-resolve.c:665
#19 0xb9fdede7 in fuse_resolve_and_resume (state=0xb144b800,
fn=0xb9ff4a84 <fuse_lookup_resume>) at fuse-resolve.c:705
#20 0xb9fe3fae in fuse_lookup (this=0xba0b1000, finh=0xb5691320,
msg=0xb5691348) at fuse-bridge.c:533
#21 0xb9ff6f6e in fuse_thread_proc (data=0xba0b1000) at
fuse-bridge.c:4417
#22 0xbb75a4ea in ?? () from /usr/lib/libpthread.so.1
#23 0xbb507ea0 in ___lwp_park50 () from /usr/lib/libc.so.12
(gdb) list
939 return -1;
940 }
941
942 time = &ctx->time;
943
944 DHT_UPDATE_TIME(time->mtime, time->mtime_nsec,
945 stat->ia_mtime, stat->ia_mtime_nsec,
inode, post);
946 DHT_UPDATE_TIME(time->ctime, time->ctime_nsec,
947 stat->ia_ctime, stat->ia_ctime_nsec,
inode, post);
948 DHT_UPDATE_TIME(time->atime, time->atime_nsec,
(gdb) print stat
$1 = (struct iatt *) 0x0
It is worth noting that stat is always NULL, as it is set here:
(gdb) frame 2
#2 0xb9f03967 in afr_lookup (frame=0xbb3856a0, this=0xba0e3000,
loc=0xb9418f98, xattr_req=0xb12775f0) at afr-common.c:2378
2378 AFR_STACK_UNWIND (lookup, frame, -1, op_errno,
(gdb) list
2373 }
2374
2375 ret = 0;
2376 out:
2377 if (ret)
2378 AFR_STACK_UNWIND (lookup, frame, -1, op_errno,
2379 NULL, NULL, NULL, NULL);
2380
2381 return 0;
2382 }
Shall I just return if stat == NULL in dht_inode_ctx_time_update()?
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org
More information about the Gluster-devel
mailing list