Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 351329 - sys-cluster/pacemaker 1.1.x issues
Summary: sys-cluster/pacemaker 1.1.x issues
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo Cluster Team
URL:
Whiteboard: [science overlay]
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-10 19:40 UTC by Lorand Kelemen
Modified: 2012-03-08 10:48 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge--info.txt,6.17 KB, text/plain)
2011-01-10 19:41 UTC, Lorand Kelemen
Details
build log (sys-cluster_pacemaker-1.1.4_20110104-160548.tar.gz,10.74 KB, application/octet-stream)
2011-01-10 19:43 UTC, Lorand Kelemen
Details
pacemaker-1.1.4-r1 build log (pacemaker-1.1.4-r1-buildlog.tar,350.00 KB, application/octet-stream)
2011-01-13 11:03 UTC, Lorand Kelemen
Details
pacemaker-1.1.4-r4 buildlog (sys-cluster_pacemaker-1.1.4-r4_20110115-140101.tar.gz,10.57 KB, application/octet-stream)
2011-01-15 14:21 UTC, Lorand Kelemen
Details
pacemaker-1.1.4-r4 buildlog (sys-cluster_pacemaker-1.1.4-r4_20110115-150111.tar.gz,7.49 KB, application/octet-stream)
2011-01-15 15:12 UTC, Lorand Kelemen
Details
pacemaker-1.1.4-r4 buildlog (sys-cluster_pacemaker-1.1.4-r4_20110115-153901.tar.gz,12.47 KB, application/octet-stream)
2011-01-15 15:44 UTC, Lorand Kelemen
Details
pacemaker-1.1.5 buildlog (sys-cluster_pacemaker-1.1.5_20110505-101738.log.tar.gz,12.45 KB, application/gzip)
2011-05-05 11:23 UTC, Lorand Kelemen
Details
pacemaker-1.1.5 usr/lib64 grep output (sys-cluster_pacemaker-1.1.5_20110505-101738_grep.out,3.47 KB, text/plain)
2011-05-05 11:27 UTC, Lorand Kelemen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lorand Kelemen 2011-01-10 19:40:27 UTC
I have the following problems with the pacemaker-1.1.4 ebuild from the science overlay:

1, Pacemaker openais dependency

Pacemaker should depend on Corosync, which is a full cluster framework in itself, nowdays the Openais layer is only needed by some applications (such as OCFS2 and GFS2) [1], also according to Andrew Beekhof Pacemaker does not use any Openais 1.1.x features [2].
Openais should be optional. I have pacemaker-1.1.4 + corosync-1.2.8-r2 + cluster-glue-1.0.7 + resource-agents-1.0.3 installed, works like a charm.

2, On a fully patched x86_64 paravirtualized Hardened Gentoo I have compile errors when upgrading Pacemaker from 1.1.3 to 1.1.4.

My guess is that some libtool generated file's library paths contain the system libs (/usr/lib64) before the work environment libraries, thus conflicting with the already installed libs.

The errors are like:

../pengine/pengine metadata | /usr/bin/xsltproc --nonet --novalid --stringparam man.name pengine ../xml/ocf-meta2man.xsl - > ../pengine/pengine.xml
/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs/pengine: symbol lookup error: /usr/lib64/libcib.so.1: undefined symbol: print_xml_formatted
-:1: parser error : Document is empty

^
-:1: parser error : Start tag expected, '<' not found

^
unable to parse -
gmake[1]: *** [pengine.xml] Error 6

From sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/pengine:

# Generated by libtool (GNU libtool) 2.2.10

    # Add our own library path to LD_LIBRARY_PATH

    ....

    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:$LD_LIBRARY_PATH"

Affected files:
sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/pengine
sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/ptest
sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/crmd/crmd
sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/tools/crm_simulate
sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/tools/crm_attribute

I could manually compile and install the ebuild after removing all ':/usr/lib64' entries.

Emerge --info and compile log attached.

[1] http://www.clusterlabs.org/wiki/FAQ#What_is_the_Project.27s_Relationship_with_OpenAIS.3F
[2] http://oss.clusterlabs.org/pipermail/pacemaker/2010-August/007068.html
Comment 1 Lorand Kelemen 2011-01-10 19:41:26 UTC
Created attachment 259500 [details]
emerge --info
Comment 2 Lorand Kelemen 2011-01-10 19:43:19 UTC
Created attachment 259502 [details]
build log
Comment 3 Rafał Mużyło 2011-01-10 22:56:30 UTC
As for the second problem: that's usually caused by an upstream mistake
- when you add _LIBADD deps for a lib (_LDADD deps for a program),
you need to ensure all your built la files are listed before system libs.

And in this particular case, they seem to do it completely wrong.
In lib/cib/Makefile.am:
libcib_la_LDFLAGS	= -version-info 1:1:0 $(top_builddir)/lib/common/libcrmcommon.la $(CRYPTOLIB)
should be
libcib_la_LDFLAGS	= -version-info 1:1:0 
libcib_la_LIBADD	= $(top_builddir)/lib/common/libcrmcommon.la $(CRYPTOLIB)
In lib/common/Makefile.am:
libcrmcluster_la_LIBADD  = $(CLUSTERLIBS) libcrmcommon.la
libcrmcommon_la_LDFLAGS	= -version-info 2:0:0  $(GNUTLSLIBS)
should be:
libcrmcluster_la_LIBADD  = libcrmcommon.la $(CLUSTERLIBS)
ibcrmcommon_la_LDFLAGS = -version-info 2:0:0
libcrmcommon_la_LDADD	= $(GNUTLSLIBS)

(well, that just from a quick glance at the sources)
Comment 4 Rafał Mużyło 2011-01-10 22:59:33 UTC
Sorry, typo.
That corrected line obviously should be libcrmcommon_la_LIBADD, not libcrmcommon_la_LDADD.
Comment 5 Ultrabug gentoo-dev 2011-01-12 15:19:21 UTC
Hi and thanks for giving feedback on sys-cluster/pacemaker-1.1.x ebuild.

@Lorand Kelemen: about first part of your comment, I modified the dependency and ebuild accordingly.

About the second part, I made up a patch according to Rafał Mużyło's proposal with LIBADD, thanks a lot for your input.

@Loran: As I am not able to reproduce your bug, would you please give us a feedback as to this fix this issue or not please ?

All available in science overlay as sys-cluster/pacemaker-1.1.4-r1

Regards
Comment 6 Lorand Kelemen 2011-01-13 11:02:30 UTC
Downgraded to 1.1.3, tried emerging 1.1.4-r1. 

I still see a wrong order, buildlog attached.

work # grep -R ':/usr/lib64' *  
Pacemaker-1-1-Pacemaker-1.1.4/pengine/pengine:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:$LD_LIBRARY_PATH"
Pacemaker-1-1-Pacemaker-1.1.4/pengine/ptest:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:$LD_LIBRARY_PATH"
Pacemaker-1-1-Pacemaker-1.1.4/mcp/pacemakerd:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH"
Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp:   obj:/usr/lib64/libcrmcommon.so.2.0.0
Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp:   obj:/usr/lib64/libplumb.so.2.1.0
Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp:  obj:/usr/lib64/libcoroipcc.so.4.0.0
Comment 7 Lorand Kelemen 2011-01-13 11:03:47 UTC
Created attachment 259690 [details]
pacemaker-1.1.4-r1 build log
Comment 8 Rafał Mużyło 2011-01-13 17:12:23 UTC
Please note "just from a quick glance at the sources" part - I've never said it was complete, just shows the direction of changes.
Next on the list is libstonithd.la - same split/order as above.

But, it seems that what *you* need to do for a complete patch is comb the tree for Makefile.am that are passing libs through _LDFLAGS and move those to either _LIBADD or _LDADD.

Then make sure upstream applies the patch.
Comment 9 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-01-14 19:15:34 UTC
Could you try =sys-cluster/pacemaker-1.1.4-r4 ?
Comment 10 Lorand Kelemen 2011-01-15 14:21:11 UTC
Created attachment 259924 [details]
pacemaker-1.1.4-r4 buildlog

Getting there, testing is not a problem. Just a little more!

work # grep -R ':/usr/lib64' *     
Pacemaker-1-1-Pacemaker-1.1.4/pengine/ptest:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:$LD_LIBRARY_PATH"
Pacemaker-1-1-Pacemaker-1.1.4/mcp/pacemakerd:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH"
Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp:   obj:/usr/lib64/libcrmcommon.so.2.0.0
Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp:   obj:/usr/lib64/libplumb.so.2.1.0
Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp:  obj:/usr/lib64/libcoroipcc.so.4.0.0
Comment 11 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-01-15 14:54:02 UTC
(In reply to comment #10)

Paths look ok to me, /usr/lib64 is at the very end...

> Created an attachment (id=259924) [details]
> pacemaker-1.1.4-r4 buildlog
../lib/pengine/.libs/libpe_status.so: undefined reference to `get_object_root'
Now you have, as-needed failure. Funny that I cannot reproduce it, I'm fixing it blindly... Uploaded new version in overlay without revbump. Please sync and try again. 
Comment 12 Lorand Kelemen 2011-01-15 15:12:24 UTC
Created attachment 259928 [details]
pacemaker-1.1.4-r4 buildlog

Died quite early.
Comment 13 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-01-15 15:31:24 UTC
(In reply to comment #12)
> Died quite early.
> 
My fault, try again
Comment 14 Lorand Kelemen 2011-01-15 15:44:42 UTC
Created attachment 259929 [details]
pacemaker-1.1.4-r4 buildlog

Getting close, crmd libs still seem to be wrong.

 # grep -R ':/usr/lib64' *
cib/cib:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/lib64:$LD_LIBRARY_PATH"
cib/cibpipe:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/lib64:$LD_LIBRARY_PATH"
cib/cibmon:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/lib64:$LD_LIBRARY_PATH"
crmd/atest:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH"
crmd/crmd:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/fencing/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:$LD_LIBRARY_PATH"
cts/cts.supp:   obj:/usr/lib64/libcrmcommon.so.2.0.0
cts/cts.supp:   obj:/usr/lib64/libplumb.so.2.1.0
cts/cts.supp:  obj:/usr/lib64/libcoroipcc.so.4.0.0
mcp/pacemakerd:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH"
pengine/pengine:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:$LD_LIBRARY_PATH"
pengine/ptest:    LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:$LD_LIBRARY_PATH"
Comment 15 Lorand Kelemen 2011-03-14 12:13:31 UTC
Meanwhile Pacemaker 1.1.5 was released [1], I'd love to see it in the overlay to test if the issue has changed over the releases.

[1] http://theclusterguy.clusterlabs.org/post/3462561268/pacemaker-1-1-5-released
Comment 16 Ultrabug gentoo-dev 2011-03-14 12:42:09 UTC
(In reply to comment #15)
> Meanwhile Pacemaker 1.1.5 was released [1], I'd love to see it in the overlay
> to test if the issue has changed over the releases.
> 
> [1]
> http://theclusterguy.clusterlabs.org/post/3462561268/pacemaker-1-1-5-released

I've not pushed it yet as I wanted to test some more things but it is available in the 'ultrabug' overlay fyi.
Comment 17 Lorand Kelemen 2011-05-05 11:23:50 UTC
Created attachment 272175 [details]
pacemaker-1.1.5 buildlog
Comment 18 Lorand Kelemen 2011-05-05 11:27:00 UTC
Created attachment 272177 [details]
pacemaker-1.1.5 usr/lib64 grep output

Finally I got around to try and update sys-cluster/pacemaker-1.1.4-r4, I used the pacemaker-1.1.5 ebuild from the specified Ultrabug overlay.

Same behaviour, grep -R ':/usr/lib64' /usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.5/work/* output and buildlog attached.

I will upgrade using the unmerge/merge "workaround" for now.