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".