Linux bcache driver list
 help / color / mirror / Atom feed
From: zhangzhen.email@gmail.com
To: Coly Li <colyli@suse.de>, Nix <nix@esperi.org.uk>,
	linux-bcache@vger.kernel.org, jianchao.wan9@gmail.com
Subject: Re: bcache detach lead to xfs force shutdown
Date: Mon, 7 Mar 2022 15:56:38 +0800	[thread overview]
Message-ID: <bff3b87d-d8e7-1395-f431-445d98716906@gmail.com> (raw)
In-Reply-To: <81a09386-1c4b-810c-a387-c636a0c3d5a5@suse.de>



On 3/4/22 4:42 PM, Coly Li <colyli@suse.de> wrote:
> On 3/4/22 4:22 PM, Zhang Zhen wrote:
> >
> > On 3/2/22 5:19 PM, Coly Li wrote:
> >> On 2/23/22 8:26 PM, Zhang Zhen wrote:
> >>>
> >>> 在 2022/2/23 下午5:03, Coly Li 写道:
> >>>> On 2/21/22 5:33 PM, Zhang Zhen wrote:
> >>>>> Hi coly,
> >>>>>
> >>>>> We encounted a bcache detach problem, during the io process,the 
> >>>>> cache device become missing.
> >>>>>
> >>>>> The io error status returned to xfs, and in some case, the xfs 
> >>>>> do force shutdown.
> >>>>>
> >>>>> The dmesg as follows:
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_count_io_errors() nvme0n1p56: 
> >>>>> IO error on writing btree.
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_count_io_errors() nvme0n1p44: 
> >>>>> IO error on writing btree.
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_count_io_errors() nvme0n1p44: 
> >>>>> IO error on writing btree.
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_count_io_errors() nvme0n1p57: 
> >>>>> IO error on writing btree.
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_count_io_errors() nvme0n1p56: 
> >>>>> IO error on writing btree.
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_count_io_errors() nvme0n1p57: 
> >>>>> IO error on writing btree.
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_count_io_errors() nvme0n1p56: 
> >>>>> IO error on writing btree.
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_btree_insert() error -5
> >>>>> Feb  2 20:59:23  kernel: XFS (bcache43): metadata I/O error in 
> >>>>> "xfs_buf_iodone_callback_error" at daddr 0x80034658 len 32 error 12
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_btree_insert() error -5
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_btree_insert() error -5
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_btree_insert() error -5
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_btree_insert() error -5
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_cache_set_error() bcache: 
> >>>>> error on 004f8aa7-561a-4ba7-bf7b-292e461d3f18:
> >>>>> Feb  2 20:59:23  kernel: journal io error
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_cache_set_error() , disabling 
> >>>>> caching
> >>>>> Feb  2 20:59:23  kernel: bcache: bch_btree_insert() error -5
> >>>>> Feb  2 20:59:23  kernel: bcache: conditional_stop_bcache_device() 
> >>>>> stop_when_cache_set_failed of bcache43 is "auto" and cache is 
> >>>>> clean, keep it alive.
> >>>>> Feb  2 20:59:23  kernel: XFS (bcache43): metadata I/O error in 
> >>>>> "xlog_iodone" at daddr 0x400123e60 len 64 error 12
> >>>>> Feb  2 20:59:23  kernel: XFS (bcache43): 
> >>>>> xfs_do_force_shutdown(0x2) called from line 1298 of file 
> >>>>> fs/xfs/xfs_log.c. Return address = 00000000c1c8077f
> >>>>> Feb  2 20:59:23  kernel: XFS (bcache43): Log I/O Error Detected. 
> >>>>> Shutting down filesystem
> >>>>> Feb  2 20:59:23  kernel: XFS (bcache43): Please unmount the 
> >>>>> filesystem and rectify the problem(s)
> >>>>>
> >>>>>
> >>>>> We checked the code, the error status is returned in 
> >>>>> cached_dev_make_request and closure_bio_submit function.
> >>>>>
> >>>>> 1180 static blk_qc_t cached_dev_make_request(struct request_queue *q,
> >>>>> 1181                     struct bio *bio)
> >>>>> 1182 {
> >>>>> 1183     struct search *s;
> >>>>> 1184     struct bcache_device *d = bio->bi_disk->private_data;
> >>>>> 1185     struct cached_dev *dc = container_of(d, struct 
> >>>>> cached_dev, disk);
> >>>>> 1186     int rw = bio_data_dir(bio);
> >>>>> 1187
> >>>>> 1188     if (unlikely((d->c && test_bit(CACHE_SET_IO_DISABLE, 
> >>>>> &d->c->flags)) ||
> >>>>> 1189              dc->io_disable)) {
> >>>>> 1190         bio->bi_status = BLK_STS_IOERR;
> >>>>> 1191         bio_endio(bio);
> >>>>> 1192         return BLK_QC_T_NONE;
> >>>>> 1193     }
> >>>>>
> >>>>>  901 static inline void closure_bio_submit(struct cache_set *c,
> >>>>>  902                       struct bio *bio,
> >>>>>  903                       struct closure *cl)
> >>>>>  904 {
> >>>>>  905     closure_get(cl);
> >>>>>  906     if (unlikely(test_bit(CACHE_SET_IO_DISABLE, &c->flags))) {
> >>>>>  907         bio->bi_status = BLK_STS_IOERR;
> >>>>>  908         bio_endio(bio);
> >>>>>  909         return;
> >>>>>  910     }
> >>>>>  911     generic_make_request(bio);
> >>>>>  912 }
> >>>>>
> >>>>> Can the cache set detached and don't return error status to fs?
> >>>>
> >>>>
> >>>> Hi Zhang,
> >>>>
> >>>>
> >>>> What is your kernel version and where do you get the kernel?
> >>>> My kernel version is 4.18 of Centos.
> >>> The code of this part is same with upstream kernel.
> >>>> It seems like an as designed behavior, could you please describe 
> >>>> more detail about the operation sequence?
> >>>>
> >>> Yes, i think so too.
> >>> The reproduce opreation as follows:
> >>> 1. mount a bcache disk with xfs
> >>>
> >>> /dev/bcache1 on /media/disk1 type xfs
> >>>
> >>> 2. run ls in background
> >>> #!/bin/bash
> >>>
> >>> while true
> >>> do
> >>>   echo 2 > /proc/sys/vm/drop_caches
> >>>   ls -R /media/disk1 > /dev/null
> >>> done
> >>>
> >>>
> >>> 3. remove cache disk sdc
> >>> echo 1 >/sys/block/sdc/device/delete
> >>>
> >>> 4. dmesg should get xfs error
> >>>
> >>> I write a patch to improve,please help to review it, thanks.
> >
> >>
> >> Hold on. Why do you think it should be fixed? As I said, it is 
> >> as-designed behavior.
> >>
> > We use bcache in writearound mode, just cache read io.
> > Currently, bcache return io error during detach, randomly lead to
> > xfs force shutdown.
> >
> > After bcache auto detach finished, some dir read write normaly, but
> > the others can't read write because of xfs force shutdown.
> > This inconsistency confuses filesystem users.
> 
> 
> Hi Zhen and Nix,
> 
> OK, I come to realize the motivation. Yes you are right, this is an 
> awkward issue and good to be fixed.
> 
Hi Coly,

So you will pick this patch into your tree ?
> 
> Coly Li
> 
> 

  reply	other threads:[~2022-03-07  7:56 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-21  9:33 bcache detach lead to xfs force shutdown Zhang Zhen
2022-02-23  9:03 ` Coly Li
2022-02-23 12:26   ` Zhang Zhen
2022-03-02  9:19     ` Coly Li
2022-03-03 17:42       ` Nix
2022-03-04  8:22       ` Zhang Zhen
2022-03-04  8:42         ` Coly Li
2022-03-07  7:56           ` zhangzhen.email [this message]
2022-03-07  8:21             ` Coly Li
2022-03-07  9:06               ` zhangzhen.email
2022-03-07  9:16               ` [PATCH] Bcache: don't return BLK_STS_IOERR during cache detach Zhen Zhang
2022-03-09 13:14     ` bcache detach lead to xfs force shutdown Coly Li
2022-03-10  2:01       ` Zhang Zhen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bff3b87d-d8e7-1395-f431-445d98716906@gmail.com \
    --to=zhangzhen.email@gmail.com \
    --cc=colyli@suse.de \
    --cc=jianchao.wan9@gmail.com \
    --cc=linux-bcache@vger.kernel.org \
    --cc=nix@esperi.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox