[Gluster-devel] gluster IRC and use systemtap can't output glusterfs backtrace

justglusterfs at gmail.com justglusterfs at gmail.com
Wed May 14 01:22:43 UTC 2014


to  Krishnan Parthasarathi:
thank you very much for your help,
As you said,  I use stap -d /usr/local/sbin/glusterfs --ldd -e 'probe process("/usr/local/lib/glusterfs/3.5/xlator/mount/fuse.so").function("*"){print_ubacktrace()}' , 
systemtap can output the fuse module function of the stack , 
But now I want to track glusterfs all function'call in order to analyze glusterfs system, need output all function call stack , 
Do you have any better suggestion? or  Recommend other tools(similar to systemtap)?
        thank you very much!




justglusterfs at gmail.com
 
From: Krishnan Parthasarathi
Date: 2014-05-13 13:38
To: 陈陈
CC: gluster-devel
Subject: Re: [Gluster-devel] gluster IRC and use systemtap can't output glusterfs backtrace
To probe functions in specific translators you need to
specify the path to the corresponding .so file in the process
provider.
 
For eg, to probe functions in fuse translator,
 
stap -d /usr/local/sbin/glusterfs --ldd -e 'probe process("/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so").function("*"){print_ubacktrace()}'
 确实可以输出fuse模块的函数栈
The following is the output I see, when I write files using dd on
a GlusterFS native mount,
 
<snip>
 
0x31d7cf5e1d : clone+0x6d/0x90 [/usr/lib64/libc-2.17.so]
0x7f7977a1c834 : fuse_resolve+0x74/0x4f0 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1cd3e : fuse_resolve_all+0x8e/0xb0 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1cd80 : fuse_resolve_and_resume+0x20/0x30 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a3507e : fuse_thread_proc+0x2ae/0x690 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x31d8407c53 : start_thread+0xc3/0x310 [/usr/lib64/libpthread-2.17.so]
0x31d7cf5e1d : clone+0x6d/0x90 [/usr/lib64/libc-2.17.so]
0x7f7977a1e4d0 : fuse_fd_ctx_get+0x0/0x40 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1c84c : fuse_resolve+0x8c/0x4f0 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1cd3e : fuse_resolve_all+0x8e/0xb0 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1cd80 : fuse_resolve_and_resume+0x20/0x30 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a3507e : fuse_thread_proc+0x2ae/0x690 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x31d8407c53 : start_thread+0xc3/0x310 [/usr/lib64/libpthread-2.17.so]
0x31d7cf5e1d : clone+0x6d/0x90 [/usr/lib64/libc-2.17.so]
0x7f7977a1c1e0 : fuse_resolve_continue+0x0/0x100 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1c9f8 : fuse_resolve+0x238/0x4f0 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1cd3e : fuse_resolve_all+0x8e/0xb0 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a1cd80 : fuse_resolve_and_resume+0x20/0x30 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x7f7977a3507e : fuse_thread_proc+0x2ae/0x690 [/usr/local/lib/glusterfs/3.5qa2/xlator/mount/fuse.so]
0x31d8407c53 : start_thread+0xc3/0x310 [/usr/lib64/libpthread-2.17.so]
0x31d7cf5e1d : clone+0x6d/0x90 [/usr/lib64/libc-2.17.so]
 
</snip>
 
Hope that helps,
Krish
 
 
----- Original Message -----
> See inline for response.
> 
> ----- Original Message -----
> > hi everyone!
> > I meet three question:
> > 
> > question one:
> > 
> > I use IRC client(mirc) config server is:  irc.freenode.net  or  irc.gnu.org
> > but always can't connect, follwing errors:
> > Connect retry #1 irc,freenode,net (6667) (dns pool)
> > unable to connect server (connect timed out)
> > 
> > 
> > 
> > question two:
> > I system is centos6.4,glusterfs version is 3.4.
> > I want to use systemtap watch glusterfs function backtrace,
> > when I configure glusterfs source code, execute the following operation:
> > ./configure --enable--systemtap
> > but checking dtrace happen error,because in my system,no dtrace,my
> > question is --enable--systemtap why need dtrace?  it must have dtrace?
> 
> I think the systemtap folks have retained certain symbols from dtrace
> so that code instrumented with systemtap user specified probes are compatible
> with systems that have dtrace but not systemtap in them.
> 
> > 
> > question three:
> > when I do io test in glusterfs client. I execute following command:
> > stap -d /usr/local/sbin/glusterfs --ldd -e 'probe
> > process("glusterfs").function("*"){print_ubacktrace()}'
> > 
> > the result is  there is nothing output, and  the stap command S state,
> > no return.
> 
> For 'process' systemtap provider, you don't need to compile glusterfs with
> "--enable-systemtap". I am not sure why you are not seeing any of the probes
> firing in your stap script. Let me try this same and share my results on this
> thread.
> 
> Hope that helps,
> Krish
> 
> > 
> > thank you answer me!
> > _______________________________________________
> > Gluster-devel mailing list
> > Gluster-devel at gluster.org
> > http://supercolony.gluster.org/mailman/listinfo/gluster-devel
> > 
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://supercolony.gluster.org/mailman/listinfo/gluster-devel
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20140514/ccb6d595/attachment-0002.html>


More information about the Gluster-devel mailing list