Opened 5 years ago

Last modified 5 years ago

#15609 new bug

checkfs do not detect attribute/index errors

Reported by: X512 Owned by: axeld
Priority: normal Milestone: Unscheduled
Component: File Systems/BFS Version: R1/Development
Keywords: Cc: ttcoder
Blocked By: Blocking:
Platform: All

Description

This is hrev53693 with https://review.haiku-os.org/c/haiku/+/2083 applied.

checkfs reports no error:

> checkfs -c /Haiku
        589270 nodes checked,
        0 blocks not allocated,
        0 blocks already set,
        0 blocks could be freed

        files           534706
        directories     50429
        attributes      2520
        attr. dirs      1575
        indices         40

        direct block runs               584629 (33.56 GiB)
        indirect block runs             2772 (in 153 array blocks, 7.16 GiB)
        double indirect block runs      0 (in 0 array blocks, 0 bytes)

, but when opening Tracker "Open With" menu, following errors will be written to syslog:

KERN: bfs: InitCheck:325: Bad data
KERN: bfs: KERN: inode at 27724319 is already deleted!
KERN: bfs: GetNextMatching:615: Bad data
KERN: bfs: KERN: could not get inode 27724319 in index "BEOS:APP_SIG"!
KERN: bfs: inode 27724750 in query has no name!
KERN: bfs: inode 28249203 in query has no name!
KERN: bfs: bfs_open_dir:1705: Not a directory

.

Change History (4)

comment:1 by axeld, 5 years ago

See https://git.haiku-os.org/haiku/tree/src/add-ons/disk_systems/bfs/BFSAddOn.cpp#n239 -- it does a whole lot more when you don't use "-c". I don't remember why I chose to restrict these checks to the normal run, though. Does not seem to make much sense.

in reply to:  1 comment:2 by X512, 5 years ago

Replying to axeld:

See https://git.haiku-os.org/haiku/tree/src/add-ons/disk_systems/bfs/BFSAddOn.cpp#n239

I don't see flags related to checking inodes referenced from index.

Last edited 5 years ago by X512 (previous) (diff)

comment:3 by ttcoder, 5 years ago

Cc: ttcoder added

in reply to:  3 comment:4 by axeld, 5 years ago

I meant BFS_FIX_BPLUSTREES. But looking at the sources, it should walk the indices no matter what -- it would only not repair them in if that flag is missing. I'm not sure why it doesn't report the error though; I'm not too familiar with the code anymore, especially since the FileSystemVisitor refactoring.

Note: See TracTickets for help on using tickets.