From: "Arkadiusz Miśkiewicz" <a.miskiewicz@gmail.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>, sandeen@sandeen.net
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 04/10] libxfs: retain ifork_ops when flushing inode
Date: Wed, 2 Oct 2019 08:00:21 +0200 [thread overview]
Message-ID: <585e5cf7-5800-20ae-118e-96386ccd5902@gmail.com> (raw)
In-Reply-To: <155594791533.115924.7540619376750686973.stgit@magnolia>
On 22/04/2019 17:45, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
>
> Retain the ifork ops used to validate the inode so that we can use the
> same one to iflush it. xfs_repair phase 6 can use multiple transactions
> to fix various inode problems, which means that the inode might not be
> fully fixed when each transaction commits.
>
> This can be a particular problem if there's a shortform directory with
> both invalid directory entries and incorrect i8count. Phase 3 will set
> the parent inode to "0" to signal to phase 6 that it needs to reset the
> parent and i8count, but phase 6 starts a transaction to junk the bad
> entries which fail to commit because the parent is invalid:
>
> fixing i8count in inode 69022994673
> Invalid inode number 0x0
> xfs_dir_ino_validate: XFS_ERROR_REPORT
> Metadata corruption detected at 0x464eb0, inode 0x10121750f1 data fork
> xfs_repair: warning - iflush_int failed (-117)
>
> And thus the inode fixes never get written out.
I just hit something similar again. xfsprogs from current for-next
(b94a69ac being latest commit in it)
[...]
bogus .. inode number (0) in directory inode 36510278809, clearing inode
number
[...]
entry "langs" in dir ino 34365014856 doesn't have a .. entry, will set
it in ino 36510278809.
[...]
setting .. in sf dir inode 36510278809 to 34365014856
Metadata corruption detected at 0x460e1c, inode 0x8802ea499 data fork
xfs_repair: warning - iflush_int failed (-117)
[...]
Phase 7 - verify and correct link counts...
Invalid inode number 0x0
xfs_dir_ino_validate: XFS_ERROR_REPORT
Metadata corruption detected at 0x460da8, inode 0x8802ea499 data fork
fatal error -- couldn't map inode 36510278809, err = 117
Full log output below:
> # /tmp/qq/sbin/xfs_repair -vvv -o bhash=256000 /dev/sdd1
> Phase 1 - find and verify superblock...
> - reporting progress in intervals of 15 minutes
> Phase 2 - using internal log
> - zero log...
> zero_log: head block 3022391 tail block 3022391
> - scan filesystem freespace and inode maps...
> - 14:26:44: scanning filesystem freespace - 39 of 39 allocation groups done
> - found root inode chunk
> libxfs_bcache: 0xdb0900
> Max supported entries = 2048000
> Max utilized entries = 40516
> Active entries = 40516
> Hash table size = 256000
> Hits = 0
> Misses = 40517
> Hit ratio = 0.00
> MRU 0 entries = 40516 (100%)
> MRU 1 entries = 0 ( 0%)
> MRU 2 entries = 0 ( 0%)
> MRU 3 entries = 0 ( 0%)
> MRU 4 entries = 0 ( 0%)
> MRU 5 entries = 0 ( 0%)
> MRU 6 entries = 0 ( 0%)
> MRU 7 entries = 0 ( 0%)
> MRU 8 entries = 0 ( 0%)
> MRU 9 entries = 0 ( 0%)
> MRU 10 entries = 0 ( 0%)
> MRU 11 entries = 0 ( 0%)
> MRU 12 entries = 0 ( 0%)
> MRU 13 entries = 0 ( 0%)
> MRU 14 entries = 0 ( 0%)
> MRU 15 entries = 0 ( 0%)
> Dirty MRU 16 entries = 0 ( 0%)
> Hash buckets with 0 entries 218473 ( 0%)
> Hash buckets with 1 entries 34691 ( 85%)
> Hash buckets with 2 entries 2690 ( 13%)
> Hash buckets with 3 entries 139 ( 1%)
> Hash buckets with 4 entries 7 ( 0%)
> Phase 3 - for each AG...
> - scan and clear agi unlinked lists...
> - 14:26:44: scanning agi unlinked lists - 39 of 39 allocation groups done
> - process known inodes and perform inode discovery...
> - agno = 15
> - agno = 0
> - agno = 30
> - agno = 16
> - agno = 31
> - agno = 1
> - agno = 17
> - agno = 32
> bogus .. inode number (0) in directory inode 36510278809, clearing inode number
> bogus .. inode number (0) in directory inode 36512379414, clearing inode number
> - agno = 18
> - agno = 19
> - agno = 33
> - agno = 20
> - agno = 34
> - agno = 21
> - agno = 35
> - agno = 2
> - agno = 22
> - agno = 36
> - agno = 23
> - agno = 37
> - agno = 24
> - agno = 3
> - agno = 38
> - agno = 25
> - agno = 4
> - agno = 26
> - agno = 5
> - agno = 27
> - agno = 6
> - agno = 28
> - agno = 7
> - agno = 29
> - agno = 8
> - agno = 9
> - agno = 10
> - agno = 11
> - agno = 12
> - agno = 13
> - agno = 14
> - 17:27:19: process known inodes and inode discovery - 173158784 of 173158784 inodes done
> - process newly discovered inodes...
> - 17:27:19: process newly discovered inodes - 39 of 39 allocation groups done
> libxfs_bcache: 0xdb0900
> Max supported entries = 2048000
> Max utilized entries = 2048000
> Active entries = 2047963
> Hash table size = 256000
> Hits = 33258462
> Misses = 39986202
> Hit ratio = 45.41
> MRU 0 entries = 21826 ( 1%)
> MRU 1 entries = 0 ( 0%)
> MRU 2 entries = 43908 ( 2%)
> MRU 3 entries = 218917 ( 10%)
> MRU 4 entries = 17304 ( 0%)
> MRU 5 entries = 45429 ( 2%)
> MRU 6 entries = 1097133 ( 53%)
> MRU 7 entries = 68828 ( 3%)
> MRU 8 entries = 0 ( 0%)
> MRU 9 entries = 0 ( 0%)
> MRU 10 entries = 0 ( 0%)
> MRU 11 entries = 318994 ( 15%)
> MRU 12 entries = 104225 ( 5%)
> MRU 13 entries = 110173 ( 5%)
> MRU 14 entries = 1226 ( 0%)
> MRU 15 entries = 0 ( 0%)
> Dirty MRU 16 entries = 0 ( 0%)
> Hash buckets with 0 entries 75 ( 0%)
> Hash buckets with 1 entries 669 ( 0%)
> Hash buckets with 2 entries 2673 ( 0%)
> Hash buckets with 3 entries 7083 ( 1%)
> Hash buckets with 4 entries 14564 ( 2%)
> Hash buckets with 5 entries 23510 ( 5%)
> Hash buckets with 6 entries 31292 ( 9%)
> Hash buckets with 7 entries 35847 ( 12%)
> Hash buckets with 8 entries 35808 ( 13%)
> Hash buckets with 9 entries 32245 ( 14%)
> Hash buckets with 10 entries 25460 ( 12%)
> Hash buckets with 11 entries 18399 ( 9%)
> Hash buckets with 12 entries 12437 ( 7%)
> Hash buckets with 13 entries 7502 ( 4%)
> Hash buckets with 14 entries 4257 ( 2%)
> Hash buckets with 15 entries 2172 ( 1%)
> Hash buckets with 16 entries 1114 ( 0%)
> Hash buckets with 17 entries 542 ( 0%)
> Hash buckets with 18 entries 200 ( 0%)
> Hash buckets with 19 entries 88 ( 0%)
> Hash buckets with 20 entries 39 ( 0%)
> Hash buckets with 21 entries 14 ( 0%)
> Hash buckets with 22 entries 8 ( 0%)
> Hash buckets with 23 entries 2 ( 0%)
> Phase 4 - check for duplicate blocks...
> - setting up duplicate extent list...
> - 17:27:21: setting up duplicate extent list - 39 of 39 allocation groups done
> - check for inodes claiming duplicate blocks...
> - agno = 30
> - agno = 15
> - agno = 0
> - agno = 16
> - agno = 1
> - agno = 31
> - agno = 17
> bogus .. inode number (0) in directory inode 36510278809, clearing inode number
> bogus .. inode number (0) in directory inode 36512379414, clearing inode number
> - agno = 18
> - agno = 32
> - agno = 19
> - agno = 20
> - agno = 33
> - agno = 21
> - agno = 34
> - agno = 22
> - agno = 35
> - agno = 23
> - agno = 36
> - agno = 2
> - agno = 37
> - agno = 24
> - agno = 25
> - agno = 38
> - agno = 26
> - agno = 27
> - agno = 28
> - agno = 3
> - agno = 29
> - agno = 4
> - agno = 5
> - agno = 6
> - agno = 7
> - agno = 8
> - agno = 9
> - agno = 10
> - agno = 11
> - agno = 12
> - agno = 13
> - agno = 14
> - 20:44:23: check for inodes claiming duplicate blocks - 173158784 of 173158784 inodes done
> libxfs_bcache: 0xdb0900
> Max supported entries = 2048000
> Max utilized entries = 2048000
> Active entries = 2047999
> Hash table size = 256000
> Hits = 64756246
> Misses = 82886582
> Hit ratio = 43.86
> MRU 0 entries = 19324 ( 0%)
> MRU 1 entries = 0 ( 0%)
> MRU 2 entries = 47524 ( 2%)
> MRU 3 entries = 217973 ( 10%)
> MRU 4 entries = 16829 ( 0%)
> MRU 5 entries = 45729 ( 2%)
> MRU 6 entries = 1071173 ( 52%)
> MRU 7 entries = 0 ( 0%)
> MRU 8 entries = 0 ( 0%)
> MRU 9 entries = 0 ( 0%)
> MRU 10 entries = 0 ( 0%)
> MRU 11 entries = 400426 ( 19%)
> MRU 12 entries = 97317 ( 4%)
> MRU 13 entries = 130545 ( 6%)
> MRU 14 entries = 1159 ( 0%)
> MRU 15 entries = 0 ( 0%)
> Dirty MRU 16 entries = 0 ( 0%)
> Hash buckets with 0 entries 73 ( 0%)
> Hash buckets with 1 entries 664 ( 0%)
> Hash buckets with 2 entries 2642 ( 0%)
> Hash buckets with 3 entries 7175 ( 1%)
> Hash buckets with 4 entries 14586 ( 2%)
> Hash buckets with 5 entries 23505 ( 5%)
> Hash buckets with 6 entries 31069 ( 9%)
> Hash buckets with 7 entries 35990 ( 12%)
> Hash buckets with 8 entries 36151 ( 14%)
> Hash buckets with 9 entries 31999 ( 14%)
> Hash buckets with 10 entries 25381 ( 12%)
> Hash buckets with 11 entries 18361 ( 9%)
> Hash buckets with 12 entries 12288 ( 7%)
> Hash buckets with 13 entries 7494 ( 4%)
> Hash buckets with 14 entries 4346 ( 2%)
> Hash buckets with 15 entries 2285 ( 1%)
> Hash buckets with 16 entries 1126 ( 0%)
> Hash buckets with 17 entries 502 ( 0%)
> Hash buckets with 18 entries 211 ( 0%)
> Hash buckets with 19 entries 95 ( 0%)
> Hash buckets with 20 entries 28 ( 0%)
> Hash buckets with 21 entries 16 ( 0%)
> Hash buckets with 22 entries 12 ( 0%)
> Hash buckets with 23 entries 1 ( 0%)
> Phase 5 - rebuild AG headers and trees...
> - agno = 0
> - agno = 1
> - agno = 2
> - agno = 3
> - agno = 4
> - agno = 5
> - agno = 6
> - agno = 7
> - agno = 8
> - agno = 9
> - agno = 10
> - agno = 11
> - agno = 12
> - agno = 13
> - agno = 14
> - agno = 15
> - agno = 16
> - agno = 17
> - agno = 18
> - agno = 19
> - agno = 20
> - agno = 21
> - agno = 22
> - agno = 23
> - agno = 24
> - agno = 25
> - agno = 26
> - agno = 27
> - agno = 28
> - agno = 29
> - agno = 30
> - agno = 31
> - agno = 32
> - agno = 33
> - agno = 34
> - agno = 35
> - agno = 36
> - agno = 37
> - agno = 38
> - 20:44:35: rebuild AG headers and trees - 39 of 39 allocation groups done
> - reset superblock...
> libxfs_bcache: 0xdb0900
> Max supported entries = 2048000
> Max utilized entries = 2048000
> Active entries = 2047979
> Hash table size = 256000
> Hits = 64756472
> Misses = 82918282
> Hit ratio = 43.85
> MRU 0 entries = 19304 ( 0%)
> MRU 1 entries = 0 ( 0%)
> MRU 2 entries = 47524 ( 2%)
> MRU 3 entries = 217973 ( 10%)
> MRU 4 entries = 16829 ( 0%)
> MRU 5 entries = 45729 ( 2%)
> MRU 6 entries = 1071173 ( 52%)
> MRU 7 entries = 0 ( 0%)
> MRU 8 entries = 0 ( 0%)
> MRU 9 entries = 0 ( 0%)
> MRU 10 entries = 0 ( 0%)
> MRU 11 entries = 400426 ( 19%)
> MRU 12 entries = 97317 ( 4%)
> MRU 13 entries = 130545 ( 6%)
> MRU 14 entries = 1159 ( 0%)
> MRU 15 entries = 0 ( 0%)
> Dirty MRU 16 entries = 0 ( 0%)
> Hash buckets with 0 entries 73 ( 0%)
> Hash buckets with 1 entries 678 ( 0%)
> Hash buckets with 2 entries 2631 ( 0%)
> Hash buckets with 3 entries 7189 ( 1%)
> Hash buckets with 4 entries 14612 ( 2%)
> Hash buckets with 5 entries 23535 ( 5%)
> Hash buckets with 6 entries 31083 ( 9%)
> Hash buckets with 7 entries 35948 ( 12%)
> Hash buckets with 8 entries 35995 ( 14%)
> Hash buckets with 9 entries 32122 ( 14%)
> Hash buckets with 10 entries 25412 ( 12%)
> Hash buckets with 11 entries 18278 ( 9%)
> Hash buckets with 12 entries 12245 ( 7%)
> Hash buckets with 13 entries 7570 ( 4%)
> Hash buckets with 14 entries 4320 ( 2%)
> Hash buckets with 15 entries 2299 ( 1%)
> Hash buckets with 16 entries 1131 ( 0%)
> Hash buckets with 17 entries 497 ( 0%)
> Hash buckets with 18 entries 231 ( 0%)
> Hash buckets with 19 entries 95 ( 0%)
> Hash buckets with 20 entries 31 ( 0%)
> Hash buckets with 21 entries 15 ( 0%)
> Hash buckets with 22 entries 9 ( 0%)
> Hash buckets with 23 entries 1 ( 0%)
> Phase 6 - check inode connectivity...
> - resetting contents of realtime bitmap and summary inodes
> - traversing filesystem ...
> - agno = 0
> - agno = 1
> - agno = 2
> - agno = 3
> - agno = 4
> - agno = 5
> - agno = 6
> - agno = 7
> - agno = 8
> - agno = 9
> - agno = 10
> - agno = 11
> - agno = 12
> entry "servmask" in dir ino 25777842447 doesn't have a .. entry, will set it in ino 36512379414.
> - agno = 13
> - agno = 14
> - agno = 15
> - agno = 16
> entry "langs" in dir ino 34365014856 doesn't have a .. entry, will set it in ino 36510278809.
> - agno = 17
> - agno = 18
> - agno = 19
> - agno = 20
> - agno = 21
> - agno = 22
> - agno = 23
> - agno = 24
> - agno = 25
> - agno = 26
> - agno = 27
> - agno = 28
> - agno = 29
> - agno = 30
> - agno = 31
> - agno = 32
> - agno = 33
> - agno = 34
> - agno = 35
> - agno = 36
> - agno = 37
> - agno = 38
> setting .. in sf dir inode 36512379414 to 25777842447
> Metadata corruption detected at 0x460e1c, inode 0x8804eb216 data fork
> xfs_repair: warning - iflush_int failed (-117)
> setting .. in sf dir inode 36510278809 to 34365014856
> Metadata corruption detected at 0x460e1c, inode 0x8802ea499 data fork
> xfs_repair: warning - iflush_int failed (-117)
> - traversal finished ...
> - moving disconnected inodes to lost+found ...
> libxfs_bcache: 0xdb0900
> Max supported entries = 2048000
> Max utilized entries = 2048000
> Active entries = 2047971
> Hash table size = 256000
> Hits = 167418187
> Misses = 119244070
> Hit ratio = 58.40
> MRU 0 entries = 80752 ( 3%)
> MRU 1 entries = 0 ( 0%)
> MRU 2 entries = 1830 ( 0%)
> MRU 3 entries = 500840 ( 24%)
> MRU 4 entries = 18369 ( 0%)
> MRU 5 entries = 0 ( 0%)
> MRU 6 entries = 1110024 ( 54%)
> MRU 7 entries = 133410 ( 6%)
> MRU 8 entries = 0 ( 0%)
> MRU 9 entries = 0 ( 0%)
> MRU 10 entries = 202746 ( 9%)
> MRU 11 entries = 0 ( 0%)
> MRU 12 entries = 0 ( 0%)
> MRU 13 entries = 0 ( 0%)
> MRU 14 entries = 0 ( 0%)
> MRU 15 entries = 0 ( 0%)
> Dirty MRU 16 entries = 0 ( 0%)
> Hash buckets with 0 entries 72 ( 0%)
> Hash buckets with 1 entries 655 ( 0%)
> Hash buckets with 2 entries 2512 ( 0%)
> Hash buckets with 3 entries 7015 ( 1%)
> Hash buckets with 4 entries 14124 ( 2%)
> Hash buckets with 5 entries 23498 ( 5%)
> Hash buckets with 6 entries 31301 ( 9%)
> Hash buckets with 7 entries 36059 ( 12%)
> Hash buckets with 8 entries 36530 ( 14%)
> Hash buckets with 9 entries 32219 ( 14%)
> Hash buckets with 10 entries 25732 ( 12%)
> Hash buckets with 11 entries 18590 ( 9%)
> Hash buckets with 12 entries 12175 ( 7%)
> Hash buckets with 13 entries 7484 ( 4%)
> Hash buckets with 14 entries 4068 ( 2%)
> Hash buckets with 15 entries 2087 ( 1%)
> Hash buckets with 16 entries 1073 ( 0%)
> Hash buckets with 17 entries 487 ( 0%)
> Hash buckets with 18 entries 194 ( 0%)
> Hash buckets with 19 entries 81 ( 0%)
> Hash buckets with 20 entries 34 ( 0%)
> Hash buckets with 21 entries 7 ( 0%)
> Hash buckets with 22 entries 2 ( 0%)
> Hash buckets with 23 entries 1 ( 0%)
> Phase 7 - verify and correct link counts...
> Invalid inode number 0x0
> xfs_dir_ino_validate: XFS_ERROR_REPORT
> Metadata corruption detected at 0x460da8, inode 0x8802ea499 data fork
>
> fatal error -- couldn't map inode 36510278809, err = 117
>
--
Arkadiusz Miśkiewicz, arekm / ( maven.pl | pld-linux.org )
next prev parent reply other threads:[~2019-10-02 6:00 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-22 15:44 [PATCH v3 00/10] xfsprogs-5.0: fix various problems Darrick J. Wong
2019-04-22 15:44 ` [PATCH 01/10] scrub: fix Makefile targets which depend on builddefs Darrick J. Wong
2019-04-22 18:27 ` Eric Sandeen
2019-04-22 18:28 ` Bill O'Donnell
2019-04-22 15:45 ` [PATCH 02/10] xfs_info: use findmnt to handle mounted block devices Darrick J. Wong
2019-04-22 18:35 ` Eric Sandeen
2019-04-22 19:27 ` Bill O'Donnell
2019-04-22 15:45 ` [PATCH 03/10] xfs_repair: correctly account for free space btree shrinks when fixing freelist Darrick J. Wong
2019-04-22 19:24 ` Eric Sandeen
2019-04-22 19:36 ` Bill O'Donnell
2019-04-22 15:45 ` [PATCH 04/10] libxfs: retain ifork_ops when flushing inode Darrick J. Wong
2019-04-22 19:40 ` Bill O'Donnell
2019-04-22 19:45 ` Eric Sandeen
2019-10-02 6:00 ` Arkadiusz Miśkiewicz [this message]
2019-04-22 15:45 ` [PATCH 05/10] libxfs: drop the ifork_ops parameter from _inode_verify_forks Darrick J. Wong
2019-04-22 19:43 ` Bill O'Donnell
2019-04-22 20:49 ` Eric Sandeen
2019-04-22 15:45 ` [PATCH 06/10] misc: fix strncpy length complaints Darrick J. Wong
2019-04-22 20:48 ` Eric Sandeen
2019-04-22 20:57 ` Darrick J. Wong
2019-04-22 21:04 ` Eric Sandeen
2019-04-22 21:07 ` Eric Sandeen
2019-04-23 15:07 ` Bill O'Donnell
2019-04-22 15:45 ` [PATCH 07/10] libxfs: refactor buffer item release code Darrick J. Wong
2019-04-22 21:26 ` Eric Sandeen
2019-04-22 21:35 ` Darrick J. Wong
2019-04-22 21:40 ` Eric Sandeen
2019-04-23 20:51 ` [PATCH v2 " Darrick J. Wong
2019-04-23 20:56 ` Bill O'Donnell
2019-04-22 15:45 ` [PATCH 08/10] libxfs: don't touch buffer log item pointer when flushing inode log item Darrick J. Wong
2019-04-23 17:56 ` Eric Sandeen
2019-04-23 20:52 ` Bill O'Donnell
2019-04-22 15:45 ` [PATCH 09/10] libxfs: fix buffer log item lifetime weirdness Darrick J. Wong
2019-04-23 21:15 ` Bill O'Donnell
2019-04-22 15:45 ` [PATCH 10/10] libxfs: shorten inode item lifetime Darrick J. Wong
2019-04-23 21:22 ` Bill O'Donnell
2019-04-23 21:04 ` [PATCH 11/10] libfrog: fix memory leak in bitmap_free Darrick J. Wong
2019-04-23 21:23 ` Bill O'Donnell
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=585e5cf7-5800-20ae-118e-96386ccd5902@gmail.com \
--to=a.miskiewicz@gmail.com \
--cc=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@sandeen.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.