[Bug 235863] file loss when adding faulty entry in a jail's /etc/fstab.foo after removing jail
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Feb 19 17:12:35 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235863
Bug ID: 235863
Summary: file loss when adding faulty entry in a jail's
/etc/fstab.foo after removing jail
Product: Base System
Version: 11.2-RELEASE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: bin
Assignee: bugs at FreeBSD.org
Reporter: unixmig68 at gmail.com
FreeBSD 11.2-RELEASE, *based on mfsbsd,
*not* tested on *vanilla* FreeBSD 11.2-RELEASE*.
Files are lost when the following steps are made:
Start a jail foo, edit its /etc/fstab.foo,
adding a nullfs-rw mount that is not valid (e.g. non-existent mountpoint),
jail -r jail foo
When you remove the jail,
you get an error because of the wrong entry.
The main mountpoint of the jail is now still mounted.
When you manually umount this remaining main mountpoint,
all nullfs-rw mount files are lost.
Expected result: files would not be lost
Actual result: files are lost
Example:
# cat /etc/fstab.maygo
/usr/jail/basejail /usr/jail/foo nullfs ro
/zroot/j/foo.d/foo.homedir /usr/jail/foo/usr/home nullfs rw
/zroot/j/foo.d/foo.var /usr/jail/foo/var nullfs rw
/zroot/j/foo.d/foo.tmp /usr/jail/foo/tmp nullfs rw
/zroot/j/foo.d/foo.etc /usr/jail/foo/etc nullfs rw
/zroot/j/foo.d/foo.root /usr/jail/foo/root nullfs rw
# ---------------------------
# cat /etc/jail.conf
# Common configs for all jails
mount.fstab = "/etc/fstab.${name}";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.consolelog = "/var/log/jail_${name}_console.log";
host.hostname = "${name}";
allow.mount;
devfs_ruleset = "4";
mount.devfs;
allow.set_hostname = 0;
path = "/usr/jail/${name}";
foo {
ip4.addr = 10.2.2.4 ;
interface = vtnet0;
allow.sysvipc = 1;
allow.raw_sockets = 1;
persist;
}
# -----------------------------
# jls
JID IP Address Hostname Path
# jail -c foo
foo: created
# find /zroot/j/foo.d | wc
100 100 3971
# jls
JID IP Address Hostname Path
46 10.2.2.4 foo /usr/jail/foo
# echo "/zroot/j/foo.d/foo.root /usr/jail/foo/NONEXISTENTDIR
nullfs rw" >> /etc/fstab.foo
# tail -3 /etc/fstab.foo
/zroot/j/foo.d/foo.root /usr/jail/foo/root nullfs rw
/zroot/j/foo.d/foo.root /usr/jail/foo/NONEXISTENTDIR nullfs
rw
# jail -r foo
foo: removed
jail: foo: mount.fstab: /usr/jail/foo/NONEXISTENTDIR: No such file or directory
# mount | grep foo
zroot/j/foo.d on /zroot/j/foo.d (zfs, local, noatime, nfsv4acls)
# umount /zroot/j/foo.d
# echo $?
0
# find /zroot/j/foo.d | wc
1 1 17
# zfs list | grep foo
zroot/j/foo.d 34.0M 8.50G 34.0M /zroot/j/foo.d
# zfs get mountpoint zroot/j/foo.d
NAME PROPERTY VALUE SOURCE
zroot/j/foo.d mountpoint /zroot/j/foo.d inherited from zroot
# mount zroot/j/foo.d /zroot/j/foo.d
mount: zroot/j/foo.d: No such file or directory
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list