Greetings, I just wanted to pop in and say thank you for doing this. This is exactly the type of integration activity we want to encourage. If you need anything from us, please feel free to send me a note. I'll make sure someone on our team gets back to you, although it seems that there's already a dialogue. In any case, welcome to Gluster-land. If you have other ideas about features we should implement or that you are interested in implementing yourself, please do send a message to this list or to me personally. We would love to hear from you. Thanks, John Mark Walker Gluster Community Guy ----- Original Message ----- > Hi, > > I recently posted patches to integrate GlusterFS with QEMU. > (http://lists.nongnu.org/archive/html/qemu-devel/2012-06/msg01745.html). > While updating those patches to latest gluster git, I am seeing a > problem and I tracked that down to this commit: > > e8eb0a9cb6539a7607d4c134daf331400a93d136 (Optimize for small dicts, > and avoid an overrun). > > With this commit, I see an invalid memory reference in > _dict_lookup(). > Some details from gdb are shown below: > > [root@bharata qemu]# gdb ./x86_64-softmmu/qemu-system-x86_64 > (gdb) set args --enable-kvm --nographic -m 1024 -smp 4 -drive > file=gluster:/home/bharata/c-qemu-rpcbypass.vol:/dir1/F16,format=gluster,cache=none > -net nic,model=virtio -net user -redir tcp:2000::22 > (gdb) r > Starting program: x86_64-softmmu/qemu-system-x86_64 --enable-kvm > --nographic -m 1024 -smp 4 -drive > file=gluster:/home/bharata/c-qemu-rpcbypass.vol:/dir1/F16,format=gluster,cache=none > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib64/libthread_db.so.1". > > Program received signal SIGSEGV, Segmentation fault. > 0x00007ffff66e8ff6 in __strcmp_sse42 () from /lib64/libc.so.6 > Missing separate debuginfos, use: debuginfo-install > glib2-2.30.3-1.fc16.x86_64 glibc-2.14.90-24.fc16.7.x86_64 > libuuid-2.20.1-2.3.fc16.x86_64 openssl-1.0.0j-1.fc16.x86_64 > zlib-1.2.5-6.fc16.x86_64 > (gdb) bt > #0 0x00007ffff66e8ff6 in __strcmp_sse42 () from /lib64/libc.so.6 > #1 0x00007ffff7241ab1 in _dict_lookup (key=0x5555564e11b0 > "directory", > this=<optimized out>) at dict.c:204 > #2 _dict_lookup (this=<optimized out>, key=0x5555564e11b0 > "directory") at dict.c:192 > #3 0x00007ffff72427ae in _dict_set (value=0x7ffff534302c, key= > 0x5555564e11b0 "directory", this=0x5555564c6c6c) at dict.c:254 > #4 dict_set (value=0x7ffff534302c, key=<optimized out>, > this=0x5555564c6c6c) > at dict.c:327 > #5 dict_set (this=0x5555564c6c6c, key=<optimized out>, > value=0x7ffff534302c) > at dict.c:313 > #6 0x00007ffff728c2a8 in volume_option (value=0x5555564e2470 "/vm", > key= > 0x5555564e11b0 "directory") at ./graph.y:249 > #7 yyparse () at ./graph.y:76 > #8 0x00007ffff728cbbc in glusterfs_graph_construct > (fp=0x5555564dcbe0) at ./graph.y:597 > <snipped> > > (gdb) up > #1 0x00007ffff7241ab1 in _dict_lookup (key=0x5555564e11b0 > "directory", > this=<optimized out>) at dict.c:204 > 204 if (pair->key && !strcmp (pair->key, key)) > (gdb) p *pair > $1 = {hash_next = 0x5555564c6ca4, prev = 0x5555564dbbfc, next = > 0x3ff00000001, value = > 0x1, key = 0x54 <Address 0x54 out of bounds>} > > You can see that pair->key has invalid address. > > I am using QEMU in RPC-bypass mode and the volume file looks like > this: > # cat c-qemu-rpcbypass.vol > volume vm > type storage/posix > option directory /vm > end-volume > > I am not familiar with this part of the code and hence will need time > to debug this. Meanwhile if anyone else familiar with this part of > the > code could give some pointers, it will be useful. > > Regards, > Bharata. > -- > http://bharata.sulekha.com/blog/posts.htm, > http://raobharata.wordpress.com/ > > _______________________________________________ > Gluster-devel mailing list > Gluster-devel@xxxxxxxxxx > https://lists.nongnu.org/mailman/listinfo/gluster-devel >