NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/58146: msdosfs crash on rename



>Number:         58146
>Category:       kern
>Synopsis:       msdosfs crashes when renaming a file
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Apr 12 19:35:00 +0000 2024
>Originator:     Rhialto
>Release:        NetBSD 10.0
>Organization:
>Environment:
System: NetBSD murthe.falu.nl 10.0 NetBSD 10.0 (GENERIC) #0: Thu Mar 28 08:33:33 UTC 2024 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
	I was doing a backup with rsync, and while doing my /mnt/efi
	partition of type msdos, to its copy on the backup disk, also
	type msdos, the receiving file system crashed.

	Fortunately it was mounted with -o rump so the real kernel had
	no problems.

>How-To-Repeat:
	mount -t msdos -o rump NAME=efi /mnt2/backup/mnt/efi

	df showed for original and backup:

	Filesystem   1K-blocks Used Avail  %Cap Mounted on
	/dev/dk3     130924    1168 129756   0% /mnt/efi
	/dev/dk14    0         0    0      100% /mnt2/backup/mnt/efi

	Rather suspicious values for the backup...
	/mnt/efi was mounted without -o rump.

	Output from rsync:

	$ rsync -avD $delete --hard-links --sparse --one-file-system \
	-i --info=progress2,stats2,symsafe \
	"$@" \
	${dir}/ ${mountpoint}${dir}

	[   1.0000000] entropy: ready
	Copying /mnt/efi...
	sending incremental file list
	.d..t...... efi/
		      0   0%    0.00kB/s    0:00:00 (xfr#0, to-chk=3/7)
	.d..t...... efi/boot/
	>f..t...... efi/boot/bootx64.efi
		223,912  19%   26.04MB/s    0:00:00 (xfr#1, to-chk=1/7)
	>f..t...... efi/boot/shell.efi
	[   1.2900050] panic: kernel diagnostic assertion "tcnp->cn_cred == cred" failed: file "/usr/src/sys/rump/fs/lib/libmsdos/../../../../fs/msdosfs/msdosfs_rename.c", line 130 
	[   1.2900050] rump kernel halting...
	halted
	rsync: [receiver] rename "/mnt2/backup/mnt/efi/efi/boot/.bootx64.efi.fGR0Eg" -> "efi/boot/bootx64.efi": Device not configured (6)
	rsync: [receiver] mkstemp "/mnt2/backup/mnt/efi/efi/boot/.shell.efi.v6vujP" failed: No such file or directory (2)
	      1,175,656  99%    5.05MB/s    0:00:00 (xfr#2, to-chk=1/7)
	.d..t...... efi/netbsd/
	>f..t...... efi/netbsd/boot.cfg
	      1,176,137 100%    5.05MB/s    0:00:00 (xfr#3, to-chk=0/7)rsync: [receiver] mkstemp "/mnt2/backup/mnt/efi/efi/netbsd/.boot.cfg.HeG2sg" failed: No such file or directory (2)
	      1,176,137 100%    5.05MB/s    0:00:00 (xfr#3, to-chk=0/7)

	Number of files: 7 (reg: 3, dir: 4)
	Number of created files: 0
	Number of deleted files: 0
	Number of regular files transferred: 3
	Total file size: 1,176,137 bytes
	Total transferred file size: 1,176,137 bytes
	Literal data: 1,176,137 bytes
	Matched data: 0 bytes
	File list size: 0
	File list generation time: 0.001 seconds
	File list transfer time: 0.000 seconds
	Total bytes sent: 1,176,746
	Total bytes received: 84

	sent 1,176,746 bytes  received 84 bytes  784,553.33 bytes/sec
	total size is 1,176,137  speedup is 1.00
	rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1336) [sender=3.2.7]

	I didn't try it with a non-rump msdosfs. Maybe it would not
	crash because DIAGNOSTIC is not enabled in GENERIC. But that the
	assertion fails may lead to other problems later.

>Fix:
	Not yet known.
	I can provide a dump of the file system in question if that
	might be needed.



Home | Main Index | Thread Index | Old Index