* [Issue] xfs: g/754, xfs_repair reports mismatch between format and size in symlink ino
@ 2024-07-26 3:33 Ma Xinjian
2024-07-26 15:27 ` Darrick J. Wong
0 siblings, 1 reply; 2+ messages in thread
From: Ma Xinjian @ 2024-07-26 3:33 UTC (permalink / raw)
To: fstests; +Cc: Ma Xinjian
Hi
Using upstream kernel, the symlink does not get corrupted in the test of generic/754 on xfs.
But the check of xfs_repair still fails with "mismatch between format (2) and size (297) in symlink ino 139".
Does xfs_repair need to make corresponding modifications to the upstream kernel fix commit?
Could anyone help take a look?
Package Version:
kernel: 6.10.0
xfs_repair: 6.9.0
Results:
```
# ./check generic/754
FSTYP -- xfs (non-debug)
PLATFORM -- Linux/x86_64 localhost 6.10.0 #2 SMP PREEMPT_DYNAMIC Wed Jul 24 05:36:54 EDT 2024
MKFS_OPTIONS -- -f /dev/loop1
MOUNT_OPTIONS -- -o context=system_u:object_r:root_t:s0 /dev/loop1 /mnt/xfstests/scratch
generic/754 _check_xfs_filesystem: filesystem on /dev/loop1 is inconsistent (r)
(see /root/xfstests-dev/results//generic/754.full for details)
HINT: You _MAY_ be missing kernel fix:
XXXXXXXXXXXXX xfs: allow symlinks with short remote targets
Ran: generic/754
Failures: generic/754
Failed 1 of 1 tests
```
Output of "xfs_repair -n":
```
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan (but don't clear) agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
mismatch between format (2) and size (297) in symlink ino 139
bad data fork in symlink 139
would have cleared inode 139
mismatch between format (2) and size (330) in symlink ino 140
bad data fork in symlink 140
would have cleared inode 140
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
unknown block state, ag 0, blocks 14-15
- check for inodes claiming duplicate blocks...
- agno = 1
- agno = 0
entry "symlink.288" at block 0 offset 288 in directory inode 128 references free inode 139
would clear inode number in entry at offset 288...
- agno = 2
- agno = 3
entry "symlink.320" at block 0 offset 312 in directory inode 128 references free inode 140
would clear inode number in entry at offset 312...
mismatch between format (2) and size (297) in symlink ino 139
bad data fork in symlink 139
would have cleared inode 139
mismatch between format (2) and size (330) in symlink ino 140
bad data fork in symlink 140
would have cleared inode 140
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
- traversing filesystem ...
entry "symlink.288" in directory inode 128 points to free inode 139, would junk entry
entry "symlink.320" in directory inode 128 points to free inode 140, would junk entry
bad hash table for directory inode 128 (no data entry): would rebuild
would rebuild directory inode 128
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.
```
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Issue] xfs: g/754, xfs_repair reports mismatch between format and size in symlink ino
2024-07-26 3:33 [Issue] xfs: g/754, xfs_repair reports mismatch between format and size in symlink ino Ma Xinjian
@ 2024-07-26 15:27 ` Darrick J. Wong
0 siblings, 0 replies; 2+ messages in thread
From: Darrick J. Wong @ 2024-07-26 15:27 UTC (permalink / raw)
To: Ma Xinjian; +Cc: fstests
On Fri, Jul 26, 2024 at 11:33:42AM +0800, Ma Xinjian wrote:
> Hi
>
> Using upstream kernel, the symlink does not get corrupted in the test of generic/754 on xfs.
> But the check of xfs_repair still fails with "mismatch between format (2) and size (297) in symlink ino 139".
> Does xfs_repair need to make corresponding modifications to the upstream kernel fix commit?
> Could anyone help take a look?
https://lore.kernel.org/linux-xfs/171988123583.2012930.12584359346392356391.stgit@frogsfrogsfrogs/
> Package Version:
> kernel: 6.10.0
> xfs_repair: 6.9.0
>
> Results:
> ```
> # ./check generic/754
> FSTYP -- xfs (non-debug)
> PLATFORM -- Linux/x86_64 localhost 6.10.0 #2 SMP PREEMPT_DYNAMIC Wed Jul 24 05:36:54 EDT 2024
> MKFS_OPTIONS -- -f /dev/loop1
> MOUNT_OPTIONS -- -o context=system_u:object_r:root_t:s0 /dev/loop1 /mnt/xfstests/scratch
>
> generic/754 _check_xfs_filesystem: filesystem on /dev/loop1 is inconsistent (r)
> (see /root/xfstests-dev/results//generic/754.full for details)
>
>
> HINT: You _MAY_ be missing kernel fix:
> XXXXXXXXXXXXX xfs: allow symlinks with short remote targets
I guess it's time to fix the kernel commit id and add a placeholder for
the xfs_repair patch too.
--D
> Ran: generic/754
> Failures: generic/754
> Failed 1 of 1 tests
> ```
>
> Output of "xfs_repair -n":
> ```
> Phase 1 - find and verify superblock...
> Phase 2 - using internal log
> - zero log...
> - scan filesystem freespace and inode maps...
> - found root inode chunk
> Phase 3 - for each AG...
> - scan (but don't clear) agi unlinked lists...
> - process known inodes and perform inode discovery...
> - agno = 0
> mismatch between format (2) and size (297) in symlink ino 139
> bad data fork in symlink 139
> would have cleared inode 139
> mismatch between format (2) and size (330) in symlink ino 140
> bad data fork in symlink 140
> would have cleared inode 140
> - agno = 1
> - agno = 2
> - agno = 3
> - process newly discovered inodes...
> Phase 4 - check for duplicate blocks...
> - setting up duplicate extent list...
> unknown block state, ag 0, blocks 14-15
> - check for inodes claiming duplicate blocks...
> - agno = 1
> - agno = 0
> entry "symlink.288" at block 0 offset 288 in directory inode 128 references free inode 139
> would clear inode number in entry at offset 288...
> - agno = 2
> - agno = 3
> entry "symlink.320" at block 0 offset 312 in directory inode 128 references free inode 140
> would clear inode number in entry at offset 312...
> mismatch between format (2) and size (297) in symlink ino 139
> bad data fork in symlink 139
> would have cleared inode 139
> mismatch between format (2) and size (330) in symlink ino 140
> bad data fork in symlink 140
> would have cleared inode 140
> No modify flag set, skipping phase 5
> Phase 6 - check inode connectivity...
> - traversing filesystem ...
> entry "symlink.288" in directory inode 128 points to free inode 139, would junk entry
> entry "symlink.320" in directory inode 128 points to free inode 140, would junk entry
> bad hash table for directory inode 128 (no data entry): would rebuild
> would rebuild directory inode 128
> - traversal finished ...
> - moving disconnected inodes to lost+found ...
> Phase 7 - verify link counts...
> No modify flag set, skipping filesystem flush and exiting.
> ```
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-07-26 15:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-26 3:33 [Issue] xfs: g/754, xfs_repair reports mismatch between format and size in symlink ino Ma Xinjian
2024-07-26 15:27 ` Darrick J. Wong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox