Received: by 10.213.65.68 with SMTP id h4csp807255imn; Fri, 6 Apr 2018 09:13:28 -0700 (PDT) X-Google-Smtp-Source: AIpwx48Z1d/OO5Ordv46kOdRU+pE804OHE4xoO7v+HblRt+RsjghRPpgU+yfg41AWbMUKUoJIwTg X-Received: by 10.98.220.86 with SMTP id t83mr20889714pfg.60.1523031208917; Fri, 06 Apr 2018 09:13:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523031208; cv=none; d=google.com; s=arc-20160816; b=WwIg/1MROq/Rva4yBVg94tflG+L5FfKIZHfkQfyuM0QC8ey1VBkwgtEbBjnL04IVPv rKMWCdPMNjyH8agYGttzOeR2+Iu9WUFsIYAqfG/iLAR0dB9+4qypt4GmH7GhVfWEgjUX u8ashutOjctYmMobsfE4Rv54V3SRvLIGIt9AhOnV7S7NXy+KDppWjvz1A+MSx3Ktas0e GRyFbvkiVkCeyOq57ypgSBOhu3OBOGfxZXSJTkbVWOU3v6l0ORgbJG+KJ8KPufgbDVYP 7HIsYpbx5Pt7iGg61Ox+jft0/TWVRxwfRVl5yE+Q69UdqBlKEUeHzbAnMzEHE37Klf1j Z/NA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=plA0SbITU+fyuZuUnz8+9kkZAFIlG4PBSYFGvqeMrOk=; b=zrQh1qH5qvsWhPjhRZ9eRlIiL8K5txzFjxJ80zB7GGdwPFwwujcE8Z0tiXjsOARqGt JLQ+cHCC+MMeTDLN0yDKAQmGaflWpWUNzpm8V/76WPYHJ2Uc5rWI7zyPGWLM9xtG+UsM DaEhg1K9z+8gQHNedninWH06PQV+3TBJEiWQkGSFaWjJst0kjNFI0Mv86tyX2cH9bcCS 1YZthzHH/PS/APGsNd7JdhMmeDWVx8ft+QZZsvW2971zFjuD53xtYMweDC3395VU7x8F 5xG+DUxLUqDQ4aZI6SP8axkGtN/K8XZ+bplf/eSr965h0v4rIcHsHolK1enbjDZXCEHl O1aQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=hfrCf4fW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a6-v6si8714499pll.722.2018.04.06.09.13.14; Fri, 06 Apr 2018 09:13:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=hfrCf4fW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751746AbeDFQLD (ORCPT + 99 others); Fri, 6 Apr 2018 12:11:03 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:44676 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751344AbeDFQLB (ORCPT ); Fri, 6 Apr 2018 12:11:01 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w36G4BuJ173699; Fri, 6 Apr 2018 16:10:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=corp-2017-10-26; bh=plA0SbITU+fyuZuUnz8+9kkZAFIlG4PBSYFGvqeMrOk=; b=hfrCf4fWZJgpXZe722Rq3cO1CH84W/Sz7e498D33FEGmP9MITsR0UnnzQJO2eLg4HHeg INkGCPe0jwh4PlVcKVxoEAQNQQKjBFm8C0s5Yj5bofwKwjO2HudRbXyTmiEvZx0fssBJ pO48v679Rrz3Xs0KQDuwNsW87RPR+uPQYjzKLlq1H5t7ZU8QABOUQVNFsxtuqeZE7sEE zbOeK8PiVU+UAere1usNj19+AjynIg5u0HdlxU0Njmow5eWc5u3iVkzqD0RJLctnJNWF 1YEEyZ6/9TUSK4C+/Hyt+uUoQoOk1g28vn6anMzb/ob/9NTlxPEDc8Q9DFZnNoZPmexB UA== Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2120.oracle.com with ESMTP id 2h5k4bdrxs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 06 Apr 2018 16:10:56 +0000 Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w36GAuQZ001000 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 6 Apr 2018 16:10:56 GMT Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w36GAt8u025699; Fri, 6 Apr 2018 16:10:55 GMT Received: from localhost (/67.169.218.210) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 06 Apr 2018 09:10:55 -0700 Date: Fri, 6 Apr 2018 09:10:53 -0700 From: "Darrick J. Wong" To: Dmitry Vyukov Cc: Dave Chinner , syzbot , LKML , linux-xfs@vger.kernel.org, syzkaller-bugs@googlegroups.com Subject: Re: WARNING: bad unlock balance in xfs_iunlock Message-ID: <20180406161053.GF7500@magnolia> References: <20180403043854.GL1150@dastard> <20180405213844.GE23861@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180405213844.GE23861@dastard> User-Agent: Mutt/1.5.24 (2015-08-30) X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8854 signatures=668697 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=2 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1804060162 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 06, 2018 at 07:38:44AM +1000, Dave Chinner wrote: > On Thu, Apr 05, 2018 at 08:54:50PM +0200, Dmitry Vyukov wrote: > > On Tue, Apr 3, 2018 at 6:38 AM, Dave Chinner wrote: > > > On Mon, Apr 02, 2018 at 07:01:02PM -0700, syzbot wrote: > > >> Hello, > > >> > > >> syzbot hit the following crash on upstream commit > > >> 86bbbebac1933e6e95e8234c4f7d220c5ddd38bc (Mon Apr 2 18:47:07 2018 +0000) > > >> Merge branch 'ras-core-for-linus' of > > >> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip > > >> syzbot dashboard link: > > >> https://syzkaller.appspot.com/bug?extid=84a67953651a971809ba > > >> > > >> C reproducer: https://syzkaller.appspot.com/x/repro.c?id=5719304272084992 > > >> syzkaller reproducer: > > >> https://syzkaller.appspot.com/x/repro.syz?id=5767783983874048 > > > > > > What a mess. A hand built, hopelessly broken filesystem image made > > > up of hex dumps, written into a mmap()d region of memory, then > > > copied into a tmpfs file and mounted with the loop device. > > > > > > Engineers that can debug broken filesystems don't grow on trees. If > > > we are to have any hope of understanding what the hell this test is > > > doing, the bot needs to supply us with a copy of the built > > > filesystem image the test uses. We need to be able to point forensic > > > tools at the image to decode all the structures into human readable > > > format - if we are forced to do that by hand or jump through hoops > > > to create our own filesystem image than I'm certainly not going to > > > waste time looking at these reports... > > > > Hi Dave, > > > > Here is the image: > > https://drive.google.com/file/d/1jzhGGe5SBJcqfsjxCLHoh4Kazke1oTfC/view > > (took me about a minute to extract from test by replacing memfd_create > > with open and running the program). > > Says the expert who knows exactly how it's all put together. It took > me a couple of hours just to understand WTF the syzbot reproducer > was actually doing.... > > > Then do the following to trigger the bug: > > losetup /dev/loop0 xfs.repro > > mkdir xfs > > mount -t xfs -o nouuid,prjquota,noikeep,quota /dev/loop0 xfs > > > > To answer your more general question: syzbot is not a system to test > > solely file systems, it finds bugs in hundreds of kernel subsystems. > > Generating image for file systems, media files for sound and > > FaceDancer programs that crash host when FaceDancer device is plugged > > into USB is not feasible. And in the end it's not even clear what > > I don't care how syzbot generates the filesystem image it uses. > > > kernel subsystem is at fault and even if it somehow figures out that > > it's a filesystem, it's unclear that it's exactly an image that > > provokes the bug. syzbot provides C reproducers which is a reasonable > > It doesn't matter *what subsystem breaks*. If syzbot is generating a > filesystem image and then mounting it, it needs to provide that > filesystem image to to people who end up having to debug the > problem. It's a basic "corrupt filesystem" bug triage step. > > > Some bugs are so involved that only an > > expert in a particular subsystem can figure out what happens there. > > And that's clearly the case here, whether you like it or not. > > You want us to do things that make syzbot more useful as a tool but > you don't want to do things that make syzbot a useful tool for us. > It's a two way street.... ...here's my take on this whole situation: So far as I can tell, this syzbot daemon grew the ability to fuzz filesystems and started emitting bug report after bug report, with misleading commit ids that have nothing to do with the complaint. Your maintainers (Dave, Eric, and me) have spent a few hours trying to figure out what's going on, to some frustration. The bug reports themselves miss the public engagement detail of saying something like "Hey XFS engineers, if you'd like to talk to the syzbot engineers they can be reached at ." Instead it merely says "direct questions to " like this is some press release and the only thing on the other end of the line will be some disinterested bureaucracy. Or some robot. We're willing to take random user reports of corruption and misbehavior and do all the work to turn that into regression tests and patches, but that's not the situation here. You work for a well known engineering company which (I assume) has decided that fuzz hardening the commons aligns with its goals. Collective-you (i.e. your company) could realize that goal sooner and with a lot less community friction by staffing up engineers to join our community to help us triage and fix the things reported by syzbot. It's much /less/ effective to dump a pile of work on the people in the community. We each have our own work-piles and most likely different priorities. Hardening XFS to the sorts of things fuzzers find is important to me (and $employer) as well, but the difference here is that I read every report that gets generated and start the work to figure out a regression test and a code fix. That is what I send to the list for more public participation and to signal that yes, there's a human behind all this with some reasonable level of understanding of the problem. --D > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html