Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2032421imm; Fri, 7 Sep 2018 09:46:31 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYSeHdXbnEgEv+tQ3G5mpN0/ETaqo16+/AqiXx9F0cxH5vqBGyZ1ap02qesvw96pF5hjat+ X-Received: by 2002:a63:1021:: with SMTP id f33-v6mr9106970pgl.72.1536338791726; Fri, 07 Sep 2018 09:46:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536338791; cv=none; d=google.com; s=arc-20160816; b=QkWTC7pea9aq/lnhb2wIiEW6UUJfAM7Ju4gdvjsn4KJEI3aGc4pvUHAJ/k03H57/ll /qTP+cBLlxc0vWiAiODiDuyks2+a5IeDyNmdkJs3gV8e2cP1XuW667UbU9hSRr7Q5mqO 8FWKahdrVPnYirIPkbT0ZeLfhje3aRQycaPpAMWeN0PJO7uBaL7CyDiylLmBspgL6ezu K7K0jSHwon4FBvT+eE0YZrQL2TirvQt5DUOfFD3SlZXq5y7xe8Pi2UiViKu7h2jIEvzN 7pJBaSuF4kJRW/w5TwGG2cl05EX7V9DKNYws35oL847I8Tjg2WSMtLU9S2WNTsyqtSa8 KtDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:subject:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:cc:to:from :date; bh=qUGBoA3mVUaXOpjVel2AO+UdwgviK3R0UiIOnJ2rzw8=; b=fM5QzVTc8EjTbg5DM0x9ZTQqqTLJDQHuJfeH4cctaO5P33WpR57lpHnMAw8G8nywje Y60xwsi3ROhViySt7bGslMbfvrPCwFCSs3S0yqom273rA2ddmkPHKxLzI3WB5fIPT4Sv Qkgzh4hIamo8BvSNcASHIfQKAyiQUCQyyJf1PMRd8FFFPNLbmrzF2dV7qXbog3rTGj0m ykWgVxJqSEMZN7zrVcuuuN0RdWXZU6ijsK3BGu/ZlXE4qrI4BFEnLlCDYh+sm1jVmBe4 /Z7XIti38UQR5TGtrHPx3wO3Ls1u124yvlyUqv/nlXib8V4Q3KAYVnxX24UYpNqzhZDp fmFQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x7-v6si8966800pgi.465.2018.09.07.09.46.16; Fri, 07 Sep 2018 09:46:31 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726341AbeIGV0x (ORCPT + 99 others); Fri, 7 Sep 2018 17:26:53 -0400 Received: from mail.CARNet.hr ([161.53.123.6]:40409 "EHLO mail.carnet.hr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726002AbeIGV0x (ORCPT ); Fri, 7 Sep 2018 17:26:53 -0400 Received: from [2001:b68:ff:12::131] (port=50872 helo=gavran.carpriv.carnet.hr) by mail.carnet.hr with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1fyJsT-0001zN-9q; Fri, 07 Sep 2018 18:45:02 +0200 Received: by gavran.carpriv.carnet.hr (Postfix, from userid 1000) id E89F5202E0; Fri, 7 Sep 2018 18:45:00 +0200 (CEST) Date: Fri, 7 Sep 2018 18:45:00 +0200 From: Valentin Vidic To: drbd-user@lists.linbit.com Cc: Jens Axboe , Konrad Rzeszutek Wilk , linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux-block@vger.kernel.org, xen-devel@lists.xenproject.org, Roger Pau =?iso-8859-1?Q?Monn=E9?= Message-ID: <20180907164500.GN26705@gavran.carpriv.carnet.hr> References: <20180829065214.23546-1-Valentin.Vidic@CARNet.hr> <20180905103649.edugijsjx4v2fbxd@mac.bytemobile.com> <20180905162756.GA26705@gavran.carpriv.carnet.hr> <20180907120337.GB11834@soda.linbit> <20180907121348.GM26705@gavran.carpriv.carnet.hr> <20180907132828.GC11834@soda.linbit> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180907132828.GC11834@soda.linbit> User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2001:b68:ff:12::131 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on rigel.CARNet.hr X-Spam-Level: X-Spam-Status: No, score=-2.9 required=10.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.3.2 Subject: Re: [DRBD-user] [PATCH] xen-blkback: Switch to closed state after releasing the backing device X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 07, 2018 at 03:28:28PM +0200, Lars Ellenberg wrote: > We don't expose that, no. > But even if we did, that would not be racefree :-) > > The last (or even: any?) "close" of a block device that used to be open > for WRITE triggeres a udev "change" event, thus a udev run, > and the minimal action will be some read-only open and ioctl from > (systemd-)udev itself, more likely there also will be blkid and possibly > pvscan and similar actions. All of them should be read-only openers, > and all of them should be "short". > But they will race with the drbd demotion. True, but did not find any strange interaction with udev during VM shutdown. This is what udevadm monitor reports: KERNEL[1174.220256] remove /devices/vbd-10-51712 (xen-backend) UDEV [1174.222484] remove /devices/vbd-10-51712 (xen-backend) KERNEL[1174.224405] remove /devices/console-10-0 (xen-backend) UDEV [1174.226964] remove /devices/console-10-0 (xen-backend) KERNEL[1174.287215] change /devices/virtual/block/drbd0 (block) KERNEL[1174.287267] change /devices/virtual/block/drbd0 (block) UDEV [1174.295811] change /devices/virtual/block/drbd0 (block) UDEV [1174.301983] change /devices/virtual/block/drbd0 (block) Strace on the udev daemon gives only these: [pid 7416] execve("/sbin/drbdadm", ["/sbin/drbdadm", "sh-udev", "minor-0"], [/* 10 vars */]) = 0 [pid 7416] execve("/lib/drbd/drbdadm-84", ["drbdadm", "sh-udev", "minor-0"], [/* 12 vars */]) = 0 [pid 7418] execve("/sbin/drbdadm", ["/sbin/drbdadm", "sh-udev", "minor-0"], [/* 9 vars */]) = 0 [pid 7418] execve("/lib/drbd/drbdadm-84", ["drbdadm", "sh-udev", "minor-0"], [/* 11 vars */]) = 0 and this should be 65-drbd.rules to add/remove symlinks in /dev. Adding a dump_stack in drbd_release gives two possible code paths, both from xen_blkback and the first one from workqueue being the problematic one: [ 530.698782] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: G O 4.9.0-8-amd64 #1 Debian 4.9.110-3+deb9u4 [ 530.698783] Hardware name: HP ProLiant BL460c Gen9, BIOS I36 09/12/2016 [ 530.698784] Workqueue: events xen_blkif_deferred_free [xen_blkback] [ 530.698785] 0000000000000000 ffffffff81331e54 ffff883f82143800 ffff883f741b5660 [ 530.698787] ffffffffc03a309e ffff883f741b5580 ffffffff81245ca8 0000000281a186b5 [ 530.698789] 000000008935f100 8412ffa31a64cc4c 000000000000020a ffff883fa6218280 [ 530.698791] Call Trace: [ 530.698792] [] ? dump_stack+0x5c/0x78 [ 530.698805] [] ? drbd_release+0x1e/0x40 [drbd] [ 530.698810] [] ? __blkdev_put+0x1e8/0x2a0 [ 530.698813] [] ? xen_vbd_free.isra.9+0x48/0x60 [xen_blkback] [ 530.698814] [] ? xen_blkif_deferred_free+0x27/0x70 [xen_blkback] [ 530.698816] [] ? process_one_work+0x18a/0x420 [ 530.698817] [] ? worker_thread+0x4d/0x490 [ 530.698818] [] ? process_one_work+0x420/0x420 [ 530.698820] [] ? kthread+0xd9/0xf0 [ 530.698822] [] ? kthread_park+0x60/0x60 [ 530.698823] [] ? ret_from_fork+0x57/0x70 [ 1216.251924] CPU: 14 PID: 297 Comm: xenwatch Tainted: G O 4.9.0-8-amd64 #1 Debian 4.9.110-3+deb9u4 [ 1216.251925] Hardware name: HP ProLiant BL460c Gen9, BIOS I36 09/12/2016 [ 1216.251926] 0000000000000000 ffffffff81331e54 ffff883f82143800 ffff883f741b5660 [ 1216.251928] ffffffffc03a309e ffff883f741b5580 ffffffff81245ca8 0000000281a186b5 [ 1216.251930] ffffffffc0562360 97e48f39d448f082 000000000000020a 0000000000000006 [ 1216.251933] Call Trace: [ 1216.251935] [] ? dump_stack+0x5c/0x78 [ 1216.251947] [] ? drbd_release+0x1e/0x40 [drbd] [ 1216.251951] [] ? __blkdev_put+0x1e8/0x2a0 [ 1216.251954] [] ? register_xenbus_watch+0xe0/0xe0 [ 1216.251956] [] ? xen_vbd_free.isra.9+0x48/0x60 [xen_blkback] [ 1216.251959] [] ? frontend_changed+0x9e/0x660 [xen_blkback] [ 1216.251961] [] ? xenbus_read_driver_state+0x39/0x60 [ 1216.251962] [] ? xenbus_otherend_changed+0x8c/0x120 [ 1216.251964] [] ? register_xenbus_watch+0xe0/0xe0 [ 1216.251967] [] ? xenwatch_thread+0x85/0x120 [ 1216.251969] [] ? prepare_to_wait_event+0xf0/0xf0 [ 1216.251971] [] ? kthread+0xd9/0xf0 [ 1216.251973] [] ? kthread_park+0x60/0x60 [ 1216.251975] [] ? ret_from_fork+0x57/0x70 -- Valentin