[ClusterLabs] Unable to run Pacemaker: pcmk_child_exit

Jan Pokorný jpokorny at redhat.com
Fri May 6 08:16:30 EDT 2016

On 06/05/16 16:59 +0530, Nikhil Utane wrote:
> [...]
>> On 05/06/2016 12:40 PM, Nikhil Utane wrote:
>>> As I am cross-compiling pacemaker on a build machine and later moving
>>> the binaries to the target, few binaries were missing. After fixing
>>> that and bunch of other errors/warning, I am able to get pacemaker
>>> started though not completely running fine.

> As I mentioned, I am cross-compiling and copying the relevant files
> on target platform.

I am afraid you are doing the "install" step of deploying from sources
across the machines utterly wrong.

> In one of the earlier run pacemaker cribbed out not finding
> /usr/share/pacemaker/pacemaker-1.0.rng.

What more to expect if you believe you can do with moving binaries
and getting relevant files OK by hand.  That doesn't really scale
and is error-prone, leading to more time spent on guesstimating
authoritative installation recipe that's already there (see below).

> I found this file under xml folder in the build folder, so I copied all the
> files under xml folder onto the target.
> Did that screw it up?
> This is the content of the folder:
> [root at airv_cu pacemaker]# ls /usr/share/pacemaker/
> Makefile              constraints-2.1.rng   nodes-1.0.rng
> pacemaker-2.1.rng     rule.rng
> Makefile.am           constraints-2.2.rng   nodes-1.2.rng
> pacemaker-2.2.rng     score.rng
> Makefile.in           constraints-2.3.rng   nodes-1.3.rng
> pacemaker-2.3.rng     status-1.0.rng
> Readme.md             constraints-next.rng  nvset-1.3.rng
> pacemaker-2.4.rng     tags-1.3.rng
> acls-1.2.rng          context-of.xsl        nvset.rng
> pacemaker-next.rng    upgrade-1.3.xsl
> acls-2.0.rng          crm-transitional.dtd  ocf-meta2man.xsl
>  pacemaker.rng         upgrade06.xsl
> best-match.sh         crm.dtd               options-1.0.rng
> regression.core.sh    versions.rng
> cib-1.0.rng           crm.xsl               pacemaker-1.0.rng
> regression.sh
> cib-1.2.rng           crm_mon.rng           pacemaker-1.2.rng
> resources-1.0.rng
> constraints-1.0.rng   fencing-1.2.rng       pacemaker-1.3.rng
> resources-1.2.rng
> constraints-1.2.rng   fencing-2.4.rng       pacemaker-2.0.rng
> resources-1.3.rng

Now, you got overapproximation of what you really need
(e.g., context-of.xsl and best-match.sh are just helpers for developers
and make sense only from within the source tree, just as Makefile etc.
does), which is what you want to avoid, especially in case of the
embedded board.

So now, what you should do instead is along these lines:

$ mkdir pcmk-tree
$ export CFLAGS=... CC=... # what you need for cross-compilation
$ ./configure ...
$ make && make install DESTDIR=$(pwd)/pcmk-tree
$ tar czpf pcmk-tree.tar.gz pcmk-tree

and now, distribute pcmk-tree.tar.gz to you target, untar it with
something like "-k --strip-components=1" in the / dir.

Or better yet, go a proper package management route, best using
"make rpm" target (you'll have to edit pacemaker.spec or RPM macros
on your system so as to pass the cross-compilation flags across)
and then just install the package at the target if that's doable
in your environment.

Hope this helps.

Jan (Poki)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.clusterlabs.org/pipermail/users/attachments/20160506/4c4d93aa/attachment-0003.sig>

More information about the Users mailing list