linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: linux-f2fs-devel@lists.sourceforge.net
Subject: [Bug 200871] F2FS experiences data loss (entry is completely lost) when an I/O failure occurs.
Date: Sun, 26 Aug 2018 09:09:48 +0000	[thread overview]
Message-ID: <bug-200871-202145-AWBDR0Eobp@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-200871-202145@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=200871

Chao Yu (chao@kernel.org) changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #1 from Chao Yu (chao@kernel.org) ---
I think there are two problems:

1. you made IO error, and return the error to upper, but fsync() didn't fail.

To reproduce this:
a) I add below code in f2fs_write_end_io, and use fault_injection to simulate
error under block layer:

        if (time_to_inject(F2FS_P_SB(bio_first_page_all(bio)), FAULT_IO)) {
                f2fs_show_injection_info(FAULT_IO);
                bio->bi_status = BLK_STS_IOERR;
        }

b) xfs_io -f /mnt/f2fs/file -c "pwrite 0 4k" -c "fsync"
fsync: Input/output error

This is because, in f2fs_write_end_io(), if error is injected, -EIO will be set
into node inode's page mapping as below:
                if (unlikely(bio->bi_status)) {
                        mapping_set_error(page->mapping, -EIO);
                        if (type == F2FS_WB_CP_DATA)
                                f2fs_stop_checkpoint(sbi, true);
                }
And later filemap_check_errors() in f2fs_sync_file() will capture such error,
and propagate it to user.

So how you inject error in bio? by fail_make_request?

2. image became inconsistent, so that we can index node block of inlien_file,
but could not read detail info of it due to the node block is corrupted.

"inconsistent node block, nid:4,
node_footer[nid:0,ino:0,ofs:0,cpver:0,blkaddr:0]"

I think this is related to first problem.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

  parent reply	other threads:[~2018-08-26  9:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-200871-202145@https.bugzilla.kernel.org/>
2018-08-23 15:26 ` [Bug 200871] F2FS experiences data loss (entry is completely lost) when an I/O failure occurs bugzilla-daemon
2018-08-26  9:09 ` bugzilla-daemon [this message]
2018-08-26 23:43 ` bugzilla-daemon
2018-08-31  7:19 ` bugzilla-daemon
2018-09-05 21:22 ` bugzilla-daemon
2018-09-05 21:23 ` bugzilla-daemon
2018-09-05 21:23 ` bugzilla-daemon
2018-09-05 21:40 ` bugzilla-daemon
2018-09-05 21:42 ` bugzilla-daemon
2018-09-21  1:50   ` Sotirios-Efstathios Maneas
2018-09-21  2:18 ` bugzilla-daemon
2018-09-21  8:50 ` bugzilla-daemon
2018-09-23  4:16 ` bugzilla-daemon
2018-09-26  8:48 ` bugzilla-daemon
2018-09-26  9:13 ` bugzilla-daemon
2018-09-26  9:45 ` bugzilla-daemon
2018-09-29  1:58 ` bugzilla-daemon
2018-10-07  1:50 ` bugzilla-daemon
2018-10-16  1:48 ` bugzilla-daemon

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=bug-200871-202145-AWBDR0Eobp@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    /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;
as well as URLs for NNTP newsgroup(s).