This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug runtime/12645] exelib.exp failures (and hung stapio's) on s390x


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]