From owner-freebsd-dtrace@freebsd.org Mon Apr 11 10:05:03 2016 Return-Path: Delivered-To: freebsd-dtrace@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2F1FB0BDC0 for ; Mon, 11 Apr 2016 10:05:03 +0000 (UTC) (envelope-from yjh0502@gmail.com) Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6FD891579 for ; Mon, 11 Apr 2016 10:05:03 +0000 (UTC) (envelope-from yjh0502@gmail.com) Received: by mail-wm0-x236.google.com with SMTP id a140so5882091wma.0 for ; Mon, 11 Apr 2016 03:05:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to; bh=fmsAw/6SGV7c24uLEp+Rwl+5tC6FoH8FFGmqGb18X4g=; b=0m7hmcL7DDq+cp890AFHQy8jTJxBI32fc49exFHxqi9Idkl7BudUQs9hGofovALI4b 8UftJFoVbtSXHaCPtbsvP8qN5aHR9GugXqfxI09FYLysh0MK/CxMSLhbnqcJsTOcwlBY JCSJrp9mo7VRwOOpHu8Zt40reA6l8HqoBLz4+zbnIsIPzKce//UYihswa8Mnlo37SQ2s ZlA6V851zg+gjz6xfrmt7ZEE5K17YAl5tUJcjaYGjc9IAsOChkvC8G4U9JTSwDqbRe+3 yZcSRBngGaJDkKkGegshGFZEcdxfo2ZD60NMe1zt2JmdmX2C9ELLVZ3EKm2FieBiH25E K5mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=fmsAw/6SGV7c24uLEp+Rwl+5tC6FoH8FFGmqGb18X4g=; b=ZNjaj+EVcLmsIsTRgRVKazecMwTgGLk1o3ZrBS91xRYdA/U2CL+cmaGHdCSa+zUnKT QStvVy8N+D7tAehj8k5XSp1K5lo8ApTexrxW3gIU0E+G4GcQ6OWhQvcq1D0rb0Xj90F7 oYRWsSdO21YEQYUIPL9Kiv4WOdKFJRFqxabVaIz5L+6dY5XtzLp+Gndm7Rbva99LobZl kPWXEVejAtKB/Ul5KsfiXkudN8/5X/CkwQvLcBBxAS3s95C12O2LeSpwb08NgzvSu2Tz 7pei+MfxgaNi8/tsQuz4hT2jg37TJiP4fejzIJSW/EwJ5/iBKg5R62WPFejwFrtSffhp oSPw== X-Gm-Message-State: AD7BkJJp7K+xbqPT5kiqneSZIuIqdSWfEywivP1Swtuo2UV2y8gjt4PGJr8s5xU3lNxZhL+EAehrFk8wcKqeWg== MIME-Version: 1.0 X-Received: by 10.28.158.78 with SMTP id h75mr18138349wme.53.1460369101908; Mon, 11 Apr 2016 03:05:01 -0700 (PDT) Received: by 10.194.65.98 with HTTP; Mon, 11 Apr 2016 03:05:01 -0700 (PDT) Date: Mon, 11 Apr 2016 19:05:01 +0900 Message-ID: Subject: [patch] Fix crash on userland fbt tracing From: Jihyun Yu To: freebsd-dtrace@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "A discussion list for developers working on DTrace in FreeBSD." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Apr 2016 10:05:03 -0000 How to reproduce crash (tested on 10.3) - Run `top` on a shell - List dtrace probes with following command: dtrace -p `pgrep top` -ln 'pid$target::clear:entry {} pid$target::clear:return {}' - Try to attach probes without specifing pid provider # dtrace -p `pgrep top` -n '::clear:entry {} ::clear:return {}' Assertion failed: (err == 0), file /usr/src/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c, line 1131. The crash is caused by a deadlock, and here's a fix. --- dt_module.c 2016-04-11 18:53:05.812651961 +0900 +++ dt_module.fix.c 2016-04-11 18:52:01.068701543 +0900 @@ -693,6 +693,7 @@ arg.dpa_count = 0; if (Pobject_iter_resolved(p, dt_module_load_proc_count, &arg) != 0) { dt_dprintf("failed to iterate objects\n"); + dt_proc_unlock(dtp, p); dt_proc_release(dtp, p); return (dt_set_errno(dtp, EDT_CANTLOAD)); }