From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tregaron Bayly Subject: Re: RAID1 lockup over multipath devices? Date: Mon, 11 Feb 2013 14:54:24 -0700 Message-ID: <1360619664.2186.41.camel@linux-lxtg.site> References: <1360611067.2186.26.camel@linux-lxtg.site> Reply-To: tbayly@bluehost.com Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1360611067.2186.26.camel@linux-lxtg.site> Sender: linux-raid-owner@vger.kernel.org To: linux-raid@vger.kernel.org List-Id: linux-raid.ids So, this looks suspicious to me: > [flush-9:16] > [] wait_barrier+0x124/0x180 [raid1] > [] make_request+0x85/0xd50 [raid1] > [] md_make_request+0xd3/0x200 > [] generic_make_request+0xca/0x100 > [] submit_bio+0x79/0x160 > [] submit_bh+0x128/0x200 > [] __block_write_full_page+0x1d0/0x330 > [] block_write_full_page_endio+0xce/0x100 > [] block_write_full_page+0x15/0x20 > [] blkdev_writepage+0x18/0x20 > [] __writepage+0x17/0x40 > [] write_cache_pages+0x1d3/0x4c0 > [] generic_writepages+0x51/0x80 > [] do_writepages+0x20/0x40 > [] __writeback_single_inode+0x3b/0x160 > [] writeback_sb_inodes+0x1e9/0x430 > [] __writeback_inodes_wb+0x9e/0xd0 > [] wb_writeback+0x24b/0x2e0 > [] wb_do_writeback+0x241/0x250 > [] bdi_writeback_thread+0xa2/0x250 > [] kthread+0xce/0xe0 > [] ret_from_fork+0x7c/0xb0 > [] 0xffffffffffffffff Thread [flush-9:16] is in wait_barrier(), which executes this: wait_event_lock_irq(conf->wait_barrier, !conf->barrier || (conf->nr_pending && current->bio_list && !bio_list_empty(current->bio_list)), conf->resync_lock, ); > [md16-raid1] > [] handle_read_error+0x119/0x790 [raid1] > [] raid1d+0x232/0x1060 [raid1] > [] md_thread+0x117/0x150 > [] kthread+0xce/0xe0 > [] ret_from_fork+0x7c/0xb0 > [] 0xffffffffffffffff and thread [md16-raid1] is in handle_read_error(), which calls freeze_array(), which executes this: wait_event_lock_irq(conf->wait_barrier, conf->nr_pending == conf->nr_queued+1, conf->resync_lock, flush_pending_writes(conf)); ...different conditions, but the same wait queue and lock. Both threads are TASK_UNINTERRUPTIBLE, which would be consistent with both of them being in the wait_event_lock_irq(). This seems more and more like a deadlock to me, but kernel concurrency is beyond my skill. Do these symptoms and stack look like a race/deadlock to anyone else? Tregaron Bayly