From owner-freebsd-bugs@FreeBSD.ORG Mon Mar 24 23:50:00 2014 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AD399DB6 for ; Mon, 24 Mar 2014 23:50:00 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 89AA5AC7 for ; Mon, 24 Mar 2014 23:50:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.8/8.14.8) with ESMTP id s2ONo0IP056084 for ; Mon, 24 Mar 2014 23:50:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.8/8.14.8/Submit) id s2ONo0rg056083; Mon, 24 Mar 2014 23:50:00 GMT (envelope-from gnats) Resent-Date: Mon, 24 Mar 2014 23:50:00 GMT Resent-Message-Id: <201403242350.s2ONo0rg056083@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Nick Zivkovic Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 289BFCC7 for ; Mon, 24 Mar 2014 23:45:35 +0000 (UTC) Received: from cgiserv.freebsd.org (cgiserv.freebsd.org [IPv6:2001:1900:2254:206a::50:4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 15575AB6 for ; Mon, 24 Mar 2014 23:45:35 +0000 (UTC) Received: from cgiserv.freebsd.org ([127.0.1.6]) by cgiserv.freebsd.org (8.14.8/8.14.8) with ESMTP id s2ONjYjI061266 for ; Mon, 24 Mar 2014 23:45:34 GMT (envelope-from nobody@cgiserv.freebsd.org) Received: (from nobody@localhost) by cgiserv.freebsd.org (8.14.8/8.14.8/Submit) id s2ONjY4i061148; Mon, 24 Mar 2014 23:45:34 GMT (envelope-from nobody) Message-Id: <201403242345.s2ONjY4i061148@cgiserv.freebsd.org> Date: Mon, 24 Mar 2014 23:45:34 GMT From: Nick Zivkovic To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: kern/187912: Getting Stack Traces of Xorg with DTrace Causes Hang X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Mar 2014 23:50:00 -0000 >Number: 187912 >Category: kern >Synopsis: Getting Stack Traces of Xorg with DTrace Causes Hang >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Mar 24 23:50:00 UTC 2014 >Closed-Date: >Last-Modified: >Originator: Nick Zivkovic >Release: 10.0 (r260789) >Organization: N/A >Environment: FreeBSD Stalingrad 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014 root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 >Description: When executing the following DTrace script: sudo dtrace -n 'syscall:::entry /execname == "Xorg"/ {@[ustack()] = count();}' and pressing ^C, the Xserver freezes. The machine (a laptop) is unresponsive. So I ssh'd into the laptop (from a different laptop), and did: pgrep dtrace Sure enough the dtrace exec was still alive, but not doing anything (that I can tell). Firefox still did IO and stuff, but Xorg didn't have _any_ activity (according to top). So I did a `kill -9 $(my-dtrace-pid)` This caused Xorg to restart. Bottom line: running that simple (and common) DTrace script froze Xorg. I don't mean to be inflammatory but, this should _never_ happen, especially not in production --- which means that the FreeBSD DTrace implementation is violating DTrace's original design constraints. This is a critical error, and shows that FreeBSD's DTrace may not be suitable for production use, yet. So far I've only been able to replicate this on Xorg. It may be of importance that I did `make buildworld` and `make installworld` with the following options: CFLAGS+=-fno-omit-frame-pointer STRIP= WITH_CTF=1 In other words I made all of my installed packages dtrace-friendly. >How-To-Repeat: When running Xorg (not stripped, no frame-pointer optimization, and with CTF) run: sudo dtrace -n 'syscall:::entry /execname == "Xorg"/ {@[ustack] = count();}' resize windows, click around, etc. go back to terminal and hit ^C. >Fix: >Release-Note: >Audit-Trail: >Unformatted: