From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7299 invoked by alias); 26 Sep 2013 19:45:09 -0000 Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org Received: (qmail 7270 invoked by uid 48); 26 Sep 2013 19:45:06 -0000 From: "dsmith at redhat dot com" To: systemtap@sourceware.org Subject: [Bug uprobes/15981] inode-uprobes breaking userspace app Date: Thu, 26 Sep 2013 19:45:00 -0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: systemtap X-Bugzilla-Component: uprobes X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dsmith at redhat dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: systemtap at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2013-q3/txt/msg00376.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=15981 --- Comment #1 from David Smith --- bz6850.exp was written against a corner case in the original version of uprobes (the one built on top of utrace). It appears that this corner case also effects inode-uprobes, since I can reproduce this one with "raw uprobes", taking systemtap out of the picture. ==== # gcc -g -o bz6850 src/testsuite/systemtap.base/bz6850.c # ./bz6850 ; ls -l bz6850_pass ; rm -f bz6850_pass -rw-r--r--. 1 root root 0 Sep 10 16:12 bz6850_pass # objdump -t ./bz6850 | fgrep .text 0000000000400680 l d .text 0000000000000000 .text 00000000004006b0 l F .text 0000000000000000 deregister_tm_clones 00000000004006e0 l F .text 0000000000000000 register_tm_clones 0000000000400720 l F .text 0000000000000000 __do_global_dtors_aux 0000000000400740 l F .text 0000000000000000 frame_dummy 0000000000400770 l F .text 0000000000000012 fork2 0000000000400782 l F .text 0000000000000025 fork1 00000000004007a7 l F .text 000000000000009a fork_and_exec2 0000000000400841 l F .text 0000000000000025 fork_and_exec1 00000000004009d0 g F .text 0000000000000002 __libc_csu_fini 0000000000400960 g F .text 0000000000000065 __libc_csu_init 0000000000400680 g F .text 0000000000000000 _start 0000000000400866 g F .text 00000000000000ed main # echo > /sys/kernel/debug/tracing/uprobe_events # echo "p:fork2_entry /root/bz6850:0x770" >> /sys/kernel/debug/tracing/uprobe_events # echo "r:fork2_exit /root/bz6850:0x770" >> /sys/kernel/debug/tracing/uprobe_events # echo "p:fork1_entry /root/bz6850:0x782" >> /sys/kernel/debug/tracing/uprobe_events # echo "r:fork1_exit /root/bz6850:0x782" >> /sys/kernel/debug/tracing/uprobe_events # echo "p:fork_and_exec2_entry /root/bz6850:0x7a7" >> /sys/kernel/debug/tracing/uprobe_events # echo "r:fork_and_exec2_exit /root/bz6850:0x7a7" >> /sys/kernel/debug/tracing/uprobe_events # echo "p:fork_and_exec1_entry /root/bz6850:0x841" >> /sys/kernel/debug/tracing/uprobe_events # echo "r:fork_and_exec1_exit /root/bz6850:0x841" >> /sys/kernel/debug/tracing/uprobe_events # echo "p:main_entry /root/bz6850:0x866" >> /sys/kernel/debug/tracing/uprobe_events # echo "r:main_exit /root/bz6850:0x866" >> /sys/kernel/debug/tracing/uprobe_events # echo 1 > /sys/kernel/debug/tracing/events/uprobes/enable # ./bz6850 ; ls -l bz6850_pass ; rm -f bz6850_pass ls: cannot access bz6850_pass: No such file or directory # echo 0 > /sys/kernel/debug/tracing/events/uprobes/enable # cat /sys/kernel/debug/tracing/trace# tracer: nop # # entries-in-buffer/entries-written: 17/17 #P:1 # # _-----=> irqs-off # / _----=> need-resched # | / _---=> hardirq/softirq # || / _--=> preempt-depth # ||| / delay # TASK-PID CPU# |||| TIMESTAMP FUNCTION # | | | |||| | | bz6850-2012 [000] d... 3459730.171267: main_entry: (0x400866) bz6850-2012 [000] d... 3459730.171319: fork_and_exec1_entry: (0x400841) bz6850-2012 [000] d... 3459730.171334: fork_and_exec2_entry: (0x4007a7) bz6850-2012 [000] d... 3459730.171348: fork1_entry: (0x400782) bz6850-2012 [000] d... 3459730.171364: fork2_entry: (0x400770) bz6850-2012 [000] d... 3459730.171561: fork2_exit: (0x4007a5 <- 0x400770) bz6850-2012 [000] d... 3459730.171565: fork1_exit: (0x4007ca <- 0x400782) bz6850-2012 [000] d... 3459730.171567: fork_and_exec2_exit: (0x400864 <- 0x4007a7) bz6850-2012 [000] d... 3459730.171569: fork_and_exec1_exit: (0x40088d <- 0x400841) # ./bz6850 ; ls -l bz6850_pass ; rm -f bz6850_pass -rw-r--r--. 1 root root 0 Sep 10 16:09 bz6850_pass ==== So, somehow putting probes in the target executable keep it from writing its marker file. -- You are receiving this mail because: You are the assignee for the bug.