From owner-freebsd-hackers@FreeBSD.ORG Wed Aug 3 10:35:19 2011 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 825B61065672 for ; Wed, 3 Aug 2011 10:35:19 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id CAF548FC08 for ; Wed, 3 Aug 2011 10:35:18 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id NAA09653; Wed, 03 Aug 2011 13:35:07 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1QoYn4-000Kra-Ki; Wed, 03 Aug 2011 13:35:06 +0300 Message-ID: <4E392458.1060606@FreeBSD.org> Date: Wed, 03 Aug 2011 13:35:04 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:5.0) Gecko/20110706 Thunderbird/5.0 MIME-Version: 1.0 To: ambrosehuang ambrose , Fabian Keil , Yuri References: <20110722202811.17302hol2s3ar084@newwebmail.rawbw.com> <20110723135655.4479d190@fabiankeil.de> In-Reply-To: X-Enigmail-Version: 1.2pre Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@FreeBSD.org Subject: Re: DTrace script asserts and kills the other process X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Aug 2011 10:35:19 -0000 on 28/07/2011 07:10 ambrosehuang ambrose said the following: >> Yuri wrote: >> >>> I am trying to run this dtrace script: >>> >>> #!/usr/sbin/dtrace -s >>> pid123:libc::entry >>> { >>> self->timestmp[probefunc] = timestmp; >>> } >>> pid123:libc::return >>> /self->timestmp[probefunc] != 0/ >>> { >>> @function_duration[probefunc] = sum(timestmp - >>> self->timestmp[probefunc]); timestmp[probefunc] = 0; >>> } >>> >>> which I got from here: >>> http://www.princeton.edu/~unix/Solaris/troubleshoot/dtrace.html >>> replacing 123 with the pid of some running process. >>> >>> Result: dtrace utility asserts: >>> Assertion failed: (dpr != NULL), file >>> >> /usr/src/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c, >>> line 751. >>> Abort trap: 6 >>> >>> Also the target process is killed too: >>> Killed: 9 >>> >>> 8.2-STABLE amd64 >> >> This is a known issue. You may be able to work around it by >> letting dtrace start the traced process. >> >> There's already a PR about it: >> http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/158431 >> but the limitation isn't mentioned in the wiki: >> http://wiki.freebsd.org/DTrace/userland FYI and benefit: I've committed what should be a fix for this issue, r224632. >> It's not clear to me if this has worked in the past or if it >> works for other architectures (the reporter and I are both using >> amd64, too). >> >> Fabian >> > I came across the same problem in 8.2-stable , it seemed the problem had > been there since 8.2-release with userland dtrace integrated. I followed the > PR185431 and found when dtrace started, it indeed attached to the traced > process( dpr != NULL), but the traced process died soon, and > according to the PR, this is "error in error" since the dtrace came accross > error in dfatal > .................................................................................................................................................... > #3 0x0000000808d8af2d in dt_proc_lookup (dtp=0x80b841000, P=0x80d7ffb40, > remove=0) > at > /usr/src/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c:751 > #4 0x0000000808d8af92 in dt_proc_destroy (dtp=0x80b841000, P=0x80d7ffb40) > at > /usr/src/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c:763 > #5 0x0000000808d8bc6e in dt_proc_hash_destroy (dtp=0x80b841000) > at > /usr/src/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c:1162 > #6 0x0000000808daa4b5 in dtrace_close (dtp=0x80b841000) > at > /usr/src/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c:1554 > #7 0x0000000000402775 in dfatal (fmt=0x408572 "no probes %s\n") > at > /usr/src/cddl/usr.sbin/dtrace/../../../cddl/contrib/opensolaris/cmd/dtrace/dtrace.c:236 > #8 0x0000000000406b2c in main (argc=3, argv=0x7ffffffed9c0) > at > /usr/src/cddl/usr.sbin/dtrace/../../../cddl/contrib/opensolaris/cmd/dtrace/dtrace.c:1825 > ..................................................................................................................................................... > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > -- Andriy Gapon