OpenSolaris

Printable Version Enter a New Search
Bug ID 6676119
Synopsis zfs unmount by pathname will unmount /var/run even when /var is set canmount=noauto
State 10-Fix Delivered (Fix available in build)
Category:Subcategory utility:zfs
Keywords
Responsible Engineer Mark Musante
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_87
Fixed In snv_87
Release Fixed solaris_nevada(snv_87) , solaris_10u6(s10u6_03) (Bug ID:2162013)
Related Bugs 6663566
Submit Date 17-March-2008
Last Update Date 9-April-2008
Description
Fresh install b09 zfs on x86, rootpool/ROOT/rootfs, separate / & /var,
lucreate 3 PBE zfs0, zfs1, zfs2, activate zfs2, then destry the ABE rootpool/ROOT/rootfs, 

it's doohickey.central, if anyone has interest to take a look, just feel free to grab the console.

# zfs list
NAME                          USED  AVAIL  REFER  MOUNTPOINT
rootpool                     8.38G  24.6G    33K  /pooldata
rootpool/ROOT                4.87G  24.6G    18K  legacy
rootpool/ROOT/zfs0           14.9M  24.6G  4.56G  /.alt.tmp.b-MC.mnt/
rootpool/ROOT/zfs0/var           0  24.6G   108M  /.alt.tmp.b-MC.mnt//var
rootpool/ROOT/zfs1            404K  24.6G  4.56G  /tmp/.alt.luupdall.3020
rootpool/ROOT/zfs1/var           0  24.6G   108M  /tmp/.alt.luupdall.3020/var
rootpool/ROOT/zfs2           4.86G  24.6G  4.64G  
rootpool/ROOT/zfs2@zfs0       122K      -  4.56G  -
rootpool/ROOT/zfs2@zfs1       126K      -  4.56G  -
rootpool/ROOT/zfs2/var        199M  24.6G   178M  /var
rootpool/ROOT/zfs2/var@zfs0      0      -   108M  -
rootpool/ROOT/zfs2/var@zfs1      0      -   108M  -
rootpool/dump                   1G  25.6G    16K  -
rootpool/export                38K  24.6G    19K  /export
rootpool/export/home           19K  24.6G    19K  /export/home
rootpool/swap                2.50G  26.1G    16K  -
rootpool/swap@%dumpdev       1.00G      -  1.00G  -

'zfs list' not show anything abnormal, but the system report warning message during test suites running of I/O error. all refer to sendmail with /var issue.

I tried manually invoke mailx, it can bring up 3 warning messages.

# echo "abc" | mailx  xxxxx@xxxxx.com
# Mar 17 04:18:44 doohickey last message repeated 2 times
Mar 17 04:19:07 doohickey sendmail[9038]: [ID 801593 mail.alert] m2HAJ7Iq009038: low on space (localhost needs 0 bytes + 100 blocks in /var/spool/mqueue), max avail: 0
Mar 17 04:19:07 doohickey sendmail[9038]: filesys_update failed: I/O error, fs=., avail=-1, blocksize=1953391939
Mar 17 04:19:07 doohickey sendmail[9038]: m2HAJ7Iq009038: low on space (localhost needs 0 bytes + 100 blocks in /var/spool/mqueue), max avail: 0

But the zfs command just show no any space issue at the moment. (See following check)
And I could even use /var space by mkfil, but sendmail still report the error at the same time.
Seems like sendmail is somehow zfs unawared...

# cd /var/
# mkfile 100m file.0
# rm file.0
# cd /var/spool/mqueue
# mkfile 10m file.0
# rm file.0

# echo "abc" | mailx  xxxxx@xxxxx.com
# Mar 17 04:28:48 doohickey last message repeated 5 times
Mar 17 04:29:04 doohickey sendmail[7099]: filesys_update failed: I/O error, fs=., avail=-1, blocksize=1953391939
Mar 17 04:29:04 doohickey sendmail[7099]: m2HAT47P007099: low on space (localhost needs 0 bytes + 100 blocks in /var/spool/mqueue), max avail: 0
Mar 17 04:29:04 doohickey sendmail[7099]: [ID 801593 mail.alert] m2HAT47P007099: low on space (localhost needs 0 bytes + 100 blocks in /var/spool/mqueue), max avail: 0

# df -h /var/spool/mqueue
Filesystem             size   used  avail capacity  Mounted on
rootpool/ROOT/zfs2/var
                        33G   183M    25G     1%    /var
# zpool status -v rootpool
  pool: rootpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rootpool    ONLINE       0     0     0
          c1t9d0s0  ONLINE       0     0     0

errors: No known data errors
# zfs get avail rootpool
NAME      PROPERTY   VALUE     SOURCE
rootpool  available  24.6G     -
# zfs get -r avail rootpool
NAME                         PROPERTY   VALUE                        SOURCE
rootpool                     available  24.6G                        -
rootpool/ROOT                available  24.6G                        -
rootpool/ROOT/zfs0           available  24.6G                        -
rootpool/ROOT/zfs0/var       available  24.6G                        -
rootpool/ROOT/zfs1           available  24.6G                        -
rootpool/ROOT/zfs1/var       available  24.6G                        -
rootpool/ROOT/zfs2           available  24.6G                        -
rootpool/ROOT/zfs2@zfs0      available  -                            -
rootpool/ROOT/zfs2@zfs1      available  -                            -
rootpool/ROOT/zfs2/var       available  24.6G                        -
rootpool/ROOT/zfs2/var@zfs0  available  -                            -
rootpool/ROOT/zfs2/var@zfs1  available  -                            -
rootpool/dump                available  25.6G                        -
rootpool/export              available  24.6G                        -
rootpool/export/home         available  24.6G                        -
rootpool/swap                available  26.1G                        -
rootpool/swap@%dumpdev       available  -        

# lufslist zfs2
               boot environment name: zfs2
               This boot environment is currently active.
               This boot environment will be active on next system boot.

Filesystem              fstype    device size Mounted on          Mount Options
----------------------- -------- ------------ ------------------- --------------
/dev/zvol/dsk/rootpool/swap swap       1610612736 -                   -
rootpool/ROOT/zfs2      zfs        5221691904 /                   -
rootpool/ROOT/zfs2/var  zfs         214934016 /var                -
# luactivate
zfs2
# swap -l
swapfile             dev    swaplo   blocks     free
/dev/zvol/dsk/rootpool/swap 182,2         8  3145720  3145720
#
The issue is caused by 'zfs unmount -f'

# ls /var/run
avahi-daemon       in.ndpd_mib        picld_door         sysevent_channels
bootadm.lock       initpipe           powerd.pid         syslog.pid
daemon             ipsecconf.lock     rpc_door           syslog_door
dbus               kcfd_door          sendmail.pid       utmppipe
hald               name_service_door  smc898             xkb
in.ndpd.pid        opengl             sshd.pid
# /usr/sbin/zfs set mountpoint=/testdir778 testpool.778/testfs.778
# /usr/sbin/zfs set mountpoint=legacy testpool.778/testfs.778
# /usr/sbin/zfs umount -f /testdir778
cannot unmount '/': Device busy
00:39:08 SUCCESS: unmounted /testdir778
00:39:08 NOTE: Mount status of /testdir778 not changed.
# ls /var/run
bootadm.lock    dbus            ipsecconf.lock  powerd.pid
A simple way to reproduce this issue.

# ls -l /var/run
total 120
drwxr-xr-x   2 daemon   other        105 Mar 18 00:44 avahi-daemon
-rw-r--r--   1 root     root           4 Mar 18 00:44 bootadm.lock
drwxr-xr-x   2 daemon   daemon        69 Mar 18 00:44 daemon
drwxr-xr-x   2 root     root         155 Mar 18 00:44 dbus
drwxr-xr-x   2 root     root         201 Mar 18 00:44 hald
-rw-r--r--   1 root     root           4 Mar 18 00:44 in.ndpd.pid
srwxr-xr-x   1 root     root           0 Mar 18 00:44 in.ndpd_mib
prw-------   1 root     root           0 Mar 18 00:44 initpipe
-rw-------   1 root     root           0 Mar 18 00:44 ipsecconf.lock
Dr--r--r--   1 daemon   daemon         0 Mar 18 00:44 kcfd_door
Dr--r--r--   1 root     root           0 Mar 18 00:44 name_service_door
drwxr-xr-x   5 root     root         184 Mar 18 00:44 opengl
Dr--r--r--   1 root     root           0 Mar 18 00:44 picld_door
-r--r--r--   1 root     root           4 Mar 18 00:44 powerd.pid
drwxrwxrwt   2 root     root         249 Mar 18 00:44 rpc_door
-rw-------   1 root     root          54 Mar 18 00:44 sendmail.pid
drwx------   2 root     root         110 Mar 18 00:44 smc898
-rw-r--r--   1 root     root           4 Mar 18 00:44 sshd.pid
drwxr-xr-x   3 root     root         119 Mar 18 00:44 sysevent_channels
-rw-r--r--   1 root     root           4 Mar 18 00:44 syslog.pid
Drw-r--r--   1 root     root           0 Mar 18 00:44 syslog_door
prw-------   1 root     root           0 Mar 18 00:48 utmppipe
drwxr-xr-x   2 root     root          69 Mar 18 00:44 xkb
# mkdir /a
# zfs unmount -f /a
cannot unmount '/': Device busy
# ls -l /var/run
total 6
-rw-r--r--   1 root     root           4 Mar 18 00:42 bootadm.lock
drwxr-xr-x   2 root     root           2 Mar 16 19:27 dbus
-rw-------   1 root     root           0 Mar 17 05:14 ipsecconf.lock
Work Around
N/A
Comments
N/A