lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAKFNMo=GXQzR=19JxPvHaV2v_K7f2LiXr8h6Qx2GzjssC6tvLA@mail.gmail.com>
Date: Wed, 25 Jun 2025 11:27:14 +0900
From: Ryusuke Konishi <konishi.ryusuke@...il.com>
To: Tomas Hlavaty <tom@...and.com>
Cc: linux-nilfs@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: BUG: NILFS error (device dm-0): nilfs_bmap_lookup_contig: broken
 bmap (inode number=4023271)

On Wed, Jun 25, 2025 at 5:27 AM Tomas Hlavaty wrote:
>
> Hi Ryusuke,
>
> I get the following error:
>
>    NILFS error (device dm-0): nilfs_bmap_lookup_contig:
>    broken bmap (inode number=4023271)
>
> and the filesystem gets mounted read-only.
>
> I can remount the filesystem read-write again manually, but after an
> operation which touches the broken part of the filesystem, it gets
> remounted read-only again.
>
> I have identified the file of the inode:
> sudo find / -inum 4023271
> as
> /root/.cache/mesa_shader_cache_db/index
> but remounting rw and trying to
> rm -r /root/.cache
> puts the filesystem to ro mode again.
> (not sure why there is .cache dir and mesa_shader_cache_db dir in the
> /root dir, I never use root account for GUI)
>
> I am in the process of upgrading the system from nixos24.11 to
> nixos25.05 but this issue is preventing me from doing so.  Is there a
> way to fix the filesystem so that it stays read-write?  Or do I have to
> discard the whole filesystem?
>
> Also I have noticed since long time ago, that reboot or shutdown says
> something about nilfs discarding stuff, which seems strange and those
> messages were not there a year or more ago.  Not sure if this is
> related, but it should not be discarding anything I guess.  I see these
> messages on many machines so it is not related to a particular hardware.
>
> Log and stacktrace are bellow.
> Please let me know if I can provide more info about the problem.
>
> Any help would be appreciated.
>
> Thank you,

Sorry for the inconvenience, and thank you for reporting the details
of the problem.

The log suggests that the b-tree, which is the metadata of the file or
directory with inode 4023271, is corrupted, making it impossible to
read and, as a result, impossible to write.

The /root/.cache/... directory is not created by nilfs, so it is
probably an application directory.

If the problem is only partial, first mount it read-only,

and then try copying it to another device while excluding the
directory from access, for example, by specifying the option
"--exclude /root/.cache" in rsync.

As for in-place repair, the conclusion is that there is currently no
way to do it. The only thing we can do is mount the filesystem
read-only and salvage as much data as possible (without touching the
damage). If you have a backup, it may be quicker to retrieve important
data from there (in any case, nilfs is powerless against block device
corruption, so please make backups as frequently as necessary).

syzbot started reporting a large number of automatically detected bugs
a few years ago, so we have been fixing a lot of serious bugs over the
past few years, and have also strengthened the detection of abnormal
file system states.

That is probably why the abnormal message from a few years ago
(probably a message about dropping to read-only and discarding dirty
data) has become a problem now.

If there were no messages with the old kernel and there were no
problems, you could use it to rescue your data, but since there is a
high possibility that there is some abnormality that was not detected
in the past, this method is generally not recommended.

I hope this helps a little.

Regards,
Ryusuke Konishi

>
> Tomas
>
> $ uname -a
> Linux buta 6.6.87 #1-NixOS SMP PREEMPT_DYNAMIC Thu Apr 10 12:37:44 UTC 2025 x86_64 GNU/Linux
>
> $ sudo dmesg | grep nilfs
> [    1.087780] stage-1-init: [Tue Jun 24 19:32:16 UTC 2025] loading module nilfs2...
> [   35.318251] NILFS error (device dm-0): nilfs_bmap_lookup_contig: broken bmap (inode number=4023271)
> [   35.319235] NILFS error (device dm-0): nilfs_bmap_lookup_contig: broken bmap (inode number=4023271)
> [...]
> [   35.347872] NILFS error (device dm-0): nilfs_bmap_lookup_contig:
> broken bmap (inode number=4023271)
> [ 1733.401421]  nilfs_segctor_do_construct+0xdd/0x2630 [nilfs2]
> [ 1733.401747]  ? nilfs_mdt_fetch_dirty+0x19/0x50 [nilfs2]
> [ 1733.401899]  ? nilfs_test_metadata_dirty.isra.0+0x50/0xb0 [nilfs2]
> [ 1733.402059]  nilfs_segctor_construct+0x170/0x2b0 [nilfs2]
> [ 1733.402220]  nilfs_segctor_thread+0x155/0x3f0 [nilfs2]
> [ 1733.402385]  ? __pfx_nilfs_segctor_thread+0x10/0x10 [nilfs2]
> [ 1738.068626] NILFS error (device dm-0): nilfs_bmap_last_key: broken
> bmap (inode number=4023271)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ