On 05/01/2012 11:01 AM, Emmanuel Dreyfus wrote:
Emmanuel Dreyfus<[email protected]>  wrote:

I added printf, and inode is NULL in mdc_inode_pre() therefore this is
not an uninitializd lock problem.

Indeed, this this the mdc_local_t  structure that seems uninitialized:

(gdb) frame 3
#3  0xbaa0ecb5 in mdc_setattr_cbk (frame=0xbb7e32a0, cookie=0xbb7a4380,
     this=0xba3e3000, op_ret=0, op_errno=0, prebuf=0xb940a57c,
     postbuf=0xb940a5e4, xdata=0x0) at md-cache.c:1365
1365            mdc_inode_iatt_set (this, local->loc.inode, postbuf);

(gdb) print *(mdc_local_t *)frame->local
$6 = {loc = {path = 0x0, name = 0x0, inode = 0x0, parent = 0x0,
     gfid = '\000'<repeats 15 times>, pargfid = '\000'
    <repeats 15 times>}, loc2 = {path = 0x0, name = 0x0, inode = 0x0,
    parent = 0x0, gfid = '\000'<repeats 15 times>,
    pargfid = '\000'<repeats 15 times>},  fd = 0xb8f9d230,
    linkname = 0x0, xattr = 0x0}

And indeed local->loc it is not initialized in mdc_fsetattr(). I suspect
there is away of obteining it from fd, but this is getting beyond by
knowledge of glusterfs internals.



Do you have a test case that causes this crash?

Vijay


_______________________________________________
Gluster-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/gluster-devel

Reply via email to