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

Bug #1298162 reported by Ben Stanley
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
systemtap (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

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)

Revision history for this message
Ben Stanley (ben-stanley) wrote :
Emanuele Rocca (ema)
Changed in systemtap (Ubuntu):
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.