Symptoms
OA task fails with the following error message:
"Destination host 'cp.provider.tld' (#2), IP '10.10.35.8' : ChOwn prohibited, path don't match truepath. Truepath of 'xxx' points to 'xxx'"
Some OA tasks generate HCLs to perform file operations on infrastructure hosts. For example, task APS : Configuring URL mapping for instances of APS applications provided on domain service with id
which is generated during brand provisioning and removal sends change owner operation to a host agent:
<SET value="pemsrv" var="defgrp"/>
Processing CHOWN(group="${defgrp}", path="/usr/local/pem/xxx"
Cause
Task may fail due to non-standard configuration of filesystem on target host. /usr/local
is not "real" directory, but a symlink to /local
. Due to OA implementation of some file functions, symlinks are resolved automatically and operation fails its internal checks.
Resolution
Issue with de-reference of symlinks was passed for further investigation to the Engineering team as request #POA-110160: "ChOwn prohibited, path don't match truepath" is thrown if target file is in symlinked folder. Please contact your technical manager or a member of Pooled Technical Associates.
Issue could be permanently workarounded by performing the following actions on target infrastructure hosts where /usr/local
is symlinked to another location (we will refer to it as /sourcedir
):
Stop OA services on target host:
# service pem stop (on UI node) # service pemui stop
Ensure that symlink is created to directory we expect:
# ll -d /usr/local lrwxrwxrwx 1 root root 6 Jul 5 2012 /usr/local -> /sourcedir/ # ll -d /sourcedir drwxr-sr-x 32 root root 4096 Feb 28 01:04 /sourcedir/
Remove symlink to
/usr/local
:# rm /usr/local
Create mountpoint and mount
/sourcedir
there:# mkdir /usr/local # mount --bind /sourcedir /usr/local
Add the following line to
/etc/fstab
to make changes persistent:/sourcedir /usr/local none bind 0 0
Start services that were previously stopped:
If target host is branding or web server, then restart apache:
# /etc/init.d/pemhttpd restart
Mount that is created in this workaround works on lower level and is not recognized by any services or even file system tools as "link". For filesystem it is file tree and all operations are performed seamlessly.