VCS Mount agent is unable to detect the mount resource as being "ONLINE" if the BlockDevice ends with '/' at the end.

book

Article ID: 100021629

calendar_today

Updated On:

Resolution

Here is a scenario of this issue.
Here is the Mount resource:
 
Mount oracle_binary_mnt (
         MountPoint= "/u01/app/oracle"
         BlockDevice= "usfm-pfsx-ds002:/vol/u01/" >>>>>> Notice that there isa '/' at the end ....
         FSType= nfs
         MountOpt= "rw,bg,vers=3,proto=tcp,hard,rsize=32768,wsize=32768"
         FsckOpt= y
)
 
This particular mount resource is a nfs type from the NetApp filer.
 
During the online script, VCS Mount agent, takes the Block Device as it is,  including the '/' at the end.
But during the monitor, it strips off the '/'.
Hence, when VCS Mount Agent monitors this, it check /etc/mnttab if that BlockDevice (ie: without the '/' at the end) exist.
 
# truss-fail -t !pollsys,ioctl -u :getmntany -p 5015
 
1046/3:        open("/etc/mnttab",O_RDONLY)                   =14
1046/3@3:      -> libc:getmntany(0xfefc3474, 0xfec7580c, 0xfec75820, 0x0)
1046/3:        stat64("usfm-pfsx-ds002:/vol/u01", 0xFEC75700)  Err#2ENOENT >>>>>> it checks on the /etc/mnttab file if that mountpoint exist.
1046/3@3:      <- libc:getmntany() = -1
1046/3:        llseek(14, 0,SEEK_CUR)                        = 0
 
Hence, the monitor script will not be able to find that and declare it as offline, as it doesn't exist.
 
So, there is inconsistency on this Mount agent between online and monitor scripts.
This issue encountered on VCS 5.0 MP3.
 
So, the solution is to NOT to use '/' at the end of the Block Device attribute.
 
Mountoracle_binary_mnt (
       MountPoint = "/u01/app/oracle"
       BlockDevice = "usfm-pfsx-ds002:/vol/u01" >>>>> there is no '/'at the end here
       FSType = nfs
       MountOpt = "rw,bg,vers=3,proto=tcp,hard,rsize=32768,wsize=32768"
       FsckOpt = y
)
This will then allow the monitor script to detect it and return as "ONLINE".
 
 

 

Issue/Introduction

VCS Mount agent is unable to detect the mount resource as being "ONLINE" if the BlockDevice ends with '/' at the end.