On Tue, Jun 19, 2012 at 1:37 AM, Jeff Darcy <jdarcy@xxxxxxxxxx> wrote: > On Mon, 2012-06-18 at 09:33 +0530, Bharata B Rao wrote: >> 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: > > I've seen something like this before, when commonly used structures > (like dict_t) change. It seems like somehow not all dependencies are > getting updated properly, resulting in a mix of code that uses the old > srtucture and code that uses the new one. I don't know how such a > problem can survive the rpmbuild process, which I always use even during > development, but I have seen the symptoms disappear when I've carefully > nuked all GlusterFS source and binaries from my system to guarantee that > I'm starting fresh. Yes I have seen similar weird problems in the past which went away after I re-started from scratch. This problem persists even after I wipe out all traces of gluster from my system and start all over again. > > In any case, I'll look into this a bit further and see if it might be > something else. The dict_t structure did change with that commit, as > did the usage of some fields, so if your code relies somehow on old > behavior then it's possible that an update is needed. My code is not dependent directly on any dict changes. All I am doing is glusterfs_graph_construct which eventually ends up doing _dict_lookup() (when parsing volume options). Will debug this and report if I find any clues. Regards, Bharata.