Public bug reported:

I tried to run systemtap with the mutex-contention.stp script supplied
in the systemtap-doc package.

/usr/share/doc/systemtap-doc/examples/process/mutex-contention.stp

I ran systemtap like this:
-------------------------------------------------------------------------------
ben@bearded-dragon:~/learn-stap$ stap -v -c "gedit" 
/usr/share/doc/systemtap-doc/examples/process/mutex-contention.stp
Pass 1: parsed user script and 91 library script(s) using 
94020virt/23100res/2608shr/21084data kb, in 70usr/0sys/72real ms.
semantic error: while resolving probe point: identifier 'process' at 
/usr/share/doc/systemtap-doc/examples/process/mutex-contention.stp:57:7
        source: probe process("/lib*/libc.so*").function("pthread_mutex_init") 
{ process_mutex_init($mutex, probefunc()) }
                      ^

semantic error: glob /lib*/libc.so* error (3)
semantic error: while resolving probe point: identifier 'process' at :58:7
        source: probe 
process("/lib*/libpthread.so*").function("__pthread_mutex_init") { 
process_mutex_init($mutex, probefunc()) }
                      ^

semantic error: glob /lib*/libpthread.so* error (3)
semantic error: while resolving probe point: identifier 'process' at :59:7
        source: probe 
process("/lib*/libpthread.so*").function("__pthread_rwlock_init") { 
process_mutex_init($rwlock, probefunc()) }
                      ^

Pass 2: analyzed script: 3 probe(s), 146 function(s), 7 embed(s), 15 global(s) 
using 296144virt/59564res/3852shr/56084data kb, in 600usr/70sys/666real ms.
Pass 2: analysis failed.  [man error::pass2]
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.
-------------------------------------------------------------------------------

Since this script comes in the examples, it carries some expectation
that it should work with the distribution that provided it.

The error message is quite confusing, until I realised that I have
multiple libc.so files on my system:

ben@bearded-dragon:~/learn-stap$ locate libc.so
/lib/i386-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so

Therefore I created a test stp script where I specified the full path to
libc.so.6 (see test-mutex-init.stp, attached). This fixed the problem.

I expect that this problem will also affect other example scripts as
well. It seems that systemtap needs a set of unit tests to cover the
examples!

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: systemtap 2.2.1-1ubuntu1
ProcVersionSignature: Ubuntu 3.11.0-18.32-generic 3.11.10.4
Uname: Linux 3.11.0-18-generic x86_64
ApportVersion: 2.12.5-0ubuntu2.2
Architecture: amd64
Date: Thu Mar 27 13:19:35 2014
InstallationDate: Installed on 2013-09-13 (194 days ago)
InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424)
MarkForUpload: True
SourcePackage: systemtap
UpgradeStatus: Upgraded to saucy on 2014-01-15 (70 days ago)

** Affects: systemtap (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug saucy

** Attachment added: "SystemTap script that demonstrates the problem and a 
solution"
   
https://bugs.launchpad.net/bugs/1298162/+attachment/4045853/+files/test-mutex-init.stp

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1298162

Title:
  systemtap script mutex-contention.stp fails due to ambiguous process
  path

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemtap/+bug/1298162/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to