This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug runtime/12645] exelib.exp failures (and hung stapio's) on s390x
- From: "dsmith at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Wed, 20 Apr 2011 19:11:53 +0000
- Subject: [Bug runtime/12645] exelib.exp failures (and hung stapio's) on s390x
- Auto-submitted: auto-generated
- References: <bug-12645-6586@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=12645
David Smith <dsmith at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #6 from David Smith <dsmith at redhat dot com> 2011-04-20 19:11:47 UTC ---
As Josh mentioned in comment #5, there are really 2 problems here. The
original failure and the problem that ends up locking up stapio and the module
shutdown path.
There was an early exit in the generated
enter_uprobe_probe()/enter_uretprobe_probe() functions. When the error was
hit, the function would exit without properly unlocking the context 'busy'
field. This causes the endlessly looping module shutdown. Fixed in the
following commits:
0d5561a599cacbfaa91bb8ffa23c40122c09aacc
6e8950296ae2019e5002c0ff688bcb73e30289a8
0e090c748f667c810a5737104a25296040b9a34c
The original failure was in attempting to put a uprobes in a writable
executable mapping. This was fixed in the following commit:
d2696bbab3b755a17098b756eb7238267339dea4
With these fixes, exelib.exp no longer leaves behind "stuck" stapio process and
modules. Note that since backtraces don't work too well on s390x the test
still doesn't pass.
Here's a run with the new code on the prelinked library:
============
# stap -kv -w -DDEBUG_TASK_FINDER_VMA -DDEBUG_UPROBES --ldd
/root/src/testsuite/systemtap.exelib/mark.stp
./uprobesgcc-O3default-debug-uprobeslibgcc-O3default-prelink-debug_exe
./libuprobeslibgcc-O3default-prelink-debug.so -c
./uprobesgcc-O3default-debug-uprobeslibgcc-O3default-prelink-debug_exe
Pass 1: parsed user script and 76 library script(s) using
125672virt/21752res/2656shr kb, in 180usr/20sys/301real ms.
Pass 2: analyzed script: 2 probe(s), 0 function(s), 0 embed(s), 0 global(s)
using 126220virt/22884res/3224shr kb, in 10usr/0sys/74real ms.
Pass 3: translated to C into "/tmp/stap77evIc/stap_41853.c" using
200068virt/23428res/3516shr kb, in 100usr/100sys/7355real ms.
Pass 4: compiled C into "stap_41853.ko" in 6140usr/990sys/10083real ms.
Pass 5: starting run.
stap_uprobe_process_munmap:334: +proc pid 42392 stf 000003c0005ea6e8
000003c0005ea6e8 path /root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x80000000 0xb000 0x0
r-xp /usr/local/libexec/systemtap/stapio
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x8000b000 0x1000
0xb000 rwxp /usr/local/libexec/systemtap/stapio
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad4ef000 0x21000
0x0 r-xp /lib64/ld-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad510000 0x1000
0x20000 r-xp /lib64/ld-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad511000 0x1000
0x21000 rwxp /lib64/ld-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad519000 0x1ad000
0x0 r-xp /lib64/libc-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad6c6000 0x4000
0x1ac000 r-xp /lib64/libc-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad6ca000 0x1000
0x1b0000 rwxp /lib64/libc-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad6d9000 0x1c000
0x0 r-xp /lib64/libpthread-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad6f5000 0x1000
0x1c000 r-xp /lib64/libpthread-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad6f6000 0x1000
0x1d000 rwxp /lib64/libpthread-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x20000014000 0x5e91000
0x0 r-xp /usr/lib/locale/locale-archive
stap_uprobe_process_munmap:334: -proc pid 42392 stf 000003c0005ea6e8
000003c0005ea6e8 path /root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
stap_uprobe_process_munmap:334: +proc pid 42392 stf 000003c0005ea6e8
000003c0005ea6e8 path /root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x80000000 0x1000 0x0
r-xp
/root/s390x/uprobesgcc-O3default-debug-uprobeslibgcc-O3default-prelink-debug_exe
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x80001000 0x1000 0x0
rwxp
/root/s390x/uprobesgcc-O3default-debug-uprobeslibgcc-O3default-prelink-debug_exe
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad4ef000 0x21000
0x0 r-xp /lib64/ld-2.12.so
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad510000 0x2000
0x20000 rwxp /lib64/ld-2.12.so
stap_uprobe_process_found:257: +proc pid 42392 stf 000003c0005ea620
000003c0005ea620 path
/root/s390x/uprobesgcc-O3default-debug-uprobeslibgcc-O3default-prelink-debug_exe
stap_uprobe_change_plus:67: +uprobe spec 0 idx 0 process uprobesgcc-O3de[42392]
addr 0000000080000688 pp
process("/root/s390x/uprobesgcc-O3default-debug-uprobeslibgcc-O3default-prelink-debug_exe").statement(0x80000688)
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x20000002000
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x20000003000
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x6400000
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x6400000 0x2000 0x0
r-xp /root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
stap_uprobe_mmap_found:292: +mmap X pid 42392 path
/root/s390x/libuprobeslibgcc-O3default-prelink-debug.so addr 0000000006400000
length 8192 offset (null) stf 000003c0005ea6e8 000003c0005ea6e8 path
/root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
stap_uprobe_change_plus:67: +uprobe spec 1 idx 1 process uprobesgcc-O3de[42392]
addr 0000000006400614 pp
process("/root/s390x/libuprobeslibgcc-O3default-prelink-debug.so").statement(0x6400614)
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x6401000
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x6401000 0x1000 0x0
rwxp /root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
stap_uprobe_mmap_found:307: +mmap W pid 42392 path
/root/s390x/libuprobeslibgcc-O3default-prelink-debug.so addr 0000000006401000
length 4096 offset (null) stf 000003c0005ea6e8 000003c0005ea6e8 path
/root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x20000005000
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x20000005000 0xd000
0x0 r-xp /etc/ld.so.cache
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x4aad6fd000
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad6fd000 0xa6000
0x0 r-xp /lib64/libm-2.12.so
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x4aad7a1000
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad7a1000 0x2000
0xa3000 rwxp /lib64/libm-2.12.so
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x4aad519000
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad519000 0x1b7000
0x0 r-xp /lib64/libc-2.12.so
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x4aad6c6000
__stp_call_mmap_callbacks:611: pid 42392, a/l/o/p/path 0x4aad6c6000 0x5000
0x1ac000 rwxp /lib64/libc-2.12.so
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x4aad6cb000
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x20000012000
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found mmap(0x0),
returned 0x20000013000
__stp_utrace_task_finder_target_syscall_exit:1435: tsk 42392 found
munmap(0x20000005000), returned 0x0
stap_uprobe_munmap_found:322: -mmap pid 42392 addr 0000020000005000 length
49422 stf 000003c0005ea6e8 000003c0005ea6e8 path
/root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
main_count: 3
main_count: 2
main_count: 1
func_count: 3
func_count: 2
func_count: 1
stap_uprobe_process_munmap:334: -proc pid 42392 stf 000003c0005ea6e8
000003c0005ea6e8 path /root/s390x/libuprobeslibgcc-O3default-prelink-debug.so
stap_uprobe_change_minus:229: -uprobe spec 1 idx 1 process
uprobesgcc-O3de[42392] reloc 0000000006400614 pp
process("/root/s390x/libuprobeslibgcc-O3default-prelink-debug.so").statement(0x6400614)
stap_uprobe_process_found:257: -proc pid 42392 stf 000003c0005ea620
000003c0005ea620 path
/root/s390x/uprobesgcc-O3default-debug-uprobeslibgcc-O3default-prelink-debug_exe
systemtap_module_exit:729: -uprobe spec 0 index 0 pid 42392 addr
0000000080000688
Pass 5: run completed in 20usr/60sys/809real ms.
Keeping temporary directory "/tmp/stap77evIc"
============
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.