Bug 28294

Summary: dump of vinum based file systems by device name fails
Product: Base System Reporter: ahd <ahd>
Component: binAssignee: Joerg Wunsch <joerg>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.3-RELEASE   
Hardware: Any   
OS: Any   

Description ahd 2001-06-20 16:20:06 UTC
I'm not sure this is a bug in vinum (kern), dump (bin), or amanda
(ports).

minerva has a number of vinum mirrored volumes (see above) and
amanda24-client-2.4.2p1_2.  Attempts to dump the vinum resident
file systems via amanda fail because amanda attempts to invoke dump
with the device name, not the mount point, and dump fails.

amanda debug log sample:

   sendsize: debug 1 pid 2242 ruid 2 euid 2 start time Wed Jun 20 10:49:31 2001
   /usr/local/libexec/amanda/sendsize: version 2.4.2p1
   calculating for amname '/usr', dirname '/usr'
   sendsize: getting size via dump for /usr level 0
   sendsize: running "/sbin/dump 0hsf 0 1048576 - /dev/vinum/usr"
   running /usr/local/libexec/amanda/killpgrp
     DUMP: Date of this level 0 dump: Wed Jun 20 10:49:31 2001
     DUMP: Date of last level 0 dump: the epoch
     DUMP: Dumping /dev/vinum/usr (/usr) to standard output
     DUMP: Cannot open /dev/vinum/usr
   .....
   (no size line match in above dump output)
   .....
   asking killpgrp to terminate

Fix: 

Workaround is specify use of GNU TAR for the dump program.
How-To-Repeat: 	
	Request amanda dump (via dump) a vinum based file system.
Comment 1 ahd 2001-06-21 23:36:42 UTC
The problem is in vinum itself -- it builds the volume device nodes wrong,
with an owner group of wheel instead of operator.   This prevents non-root
members of operator from accessing the drives.

Compare these device nodes for regular disk slices:

crw-r-----  2 root  operator   13, 0x0003000a Jun 16 23:47 /dev/da1s2
crw-r-----  2 root  operator   13, 0x00030008 Jun 16 23:47 /dev/da1s2a
crw-r-----  2 root  operator   13, 0x00030009 Jun 16 23:47 /dev/da1s2b
crw-r-----  2 root  operator   13, 0x0003000a Jun 16 23:47 /dev/da1s2c
crw-r-----  2 root  operator   13, 0x0003000b Jun 16 23:47 /dev/da1s2d
crw-r-----  2 root  operator   13, 0x0003000c Jun 16 23:47 /dev/da1s2e
crw-r-----  2 root  operator   13, 0x0003000d Jun 16 23:47 /dev/da1s2f
crw-r-----  2 root  operator   13, 0x0003000e Jun 16 23:47 /dev/da1s2g
crw-r-----  2 root  operator   13, 0x0003000f Jun 16 23:47 /dev/da1s2h

to the vinum subdirectory:

crw-------  1 root  wheel   91, 0x40000001 Jun 18 13:44 Control
crw-------  1 root  wheel   91, 0x40000002 Jun 18 13:44 control
crw-------  1 root  wheel   91, 0x40000000 Jun 18 13:44 controld
drwxr-xr-x  2 root  wheel       512 Jun 18 13:44 drive
crw-r-----  1 root  wheel   91,   2 Jun 18 13:44 export
drwxr-xr-x  2 root  wheel       512 Jun 18 13:44 plex
crw-r-----  1 root  wheel   91,   3 Jun 18 13:44 scratch
drwxr-xr-x  2 root  wheel       512 Jun 18 13:44 sd
crw-r-----  1 root  wheel   91,   1 Jun 18 13:44 usr
crw-r-----  1 root  wheel   91,   0 Jun 18 13:44 var
drwxr-xr-x  6 root  wheel       512 Jun 18 13:44 vol

The scratch, usr, export, and var devices should all be owned by group
operator.

Note that because vinum attempts remake to the device nodes in /dev/vinum at
every reboot, it's unclear if a simple chmod command would solve the issue
for existing vinum volumes across reboots.

-ahd-
Comment 2 Jens Schweikhardt freebsd_committer freebsd_triage 2002-10-03 13:19:48 UTC
Responsible Changed
From-To: freebsd-bugs->grog

Over to vinum maintainer.
Comment 3 Greg Lehey freebsd_committer freebsd_triage 2002-10-18 02:39:21 UTC
Responsible Changed
From-To: grog->	 joerg

joerg has offered to fix this problem.
Comment 4 Joerg Wunsch freebsd_committer freebsd_triage 2003-01-16 23:50:37 UTC
State Changed
From-To: open->closed

Fixed in both, the kernel part (for DEVFS under -current), 
and the vinum(8) utility (for non-DEVFS cases, due for MFC 
into 4.x).