Bug 147236 - Symbol lookup error from lvm.static
Summary: Symbol lookup error from lvm.static
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Cluster Suite
Classification: Retired
Component: lvm2-cluster
Version: 4
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Corey Marthaler
QA Contact: Cluster QE
URL:
Whiteboard:
Depends On:
Blocks: 144795
TreeView+ depends on / blocked
 
Reported: 2005-02-04 22:24 UTC by Derek Anderson
Modified: 2010-01-12 04:03 UTC (History)
1 user (show)

Fixed In Version: RHBA-2005-192
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-04-06 16:05:34 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2005:192 0 low SHIPPED_LIVE lvm2 bug fix and enhancement update 2005-06-09 04:00:00 UTC

Description Derek Anderson 2005-02-04 22:24:14 UTC
Description of problem:
[root@link-12 ~]# lvm.static vgscan
  Reading all physical volumes.  This may take a while...
lvm.static: symbol lookup error: /usr/lib/liblvm2clusterlock.so:
undefined symbol: lvm_snprintf

Version-Release number of selected component (if applicable):
lvm2-2.01.03-1.0.RHEL4
lvm2-cluster-2.01.03-1.0.RHEL4

How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 1 Derek Anderson 2005-02-04 22:25:40 UTC
The clvmd init script uses this incantation, so that's how it came up.

Comment 2 Christine Caulfield 2005-02-07 16:46:51 UTC
Another issue here is why the lvm.static is using a shared library in
/usr/lib.

Surely the whole point of lvm.static is that it doesn't depend on
anything. If you REALLY need a static lvm binary that is cluster-aware
then the cluster locking code should be compiled into it.

Comment 3 Adam "mantis" Manthei 2005-02-08 17:31:06 UTC
I changed the clvmd init.d script to use /usr/sbin/vgscan.  This
addresses the init script problem but not the actual bug itself. 
lvm.static should not be generating any unresolved symbol errors since
it shouldn't be loading libraries at runtime.

Checking in clvmd_init_rhel4;
/cvs/lvm2/LVM2/scripts/clvmd_init_rhel4,v  <--  clvmd_init_rhel4
new revision: 1.4; previous revision: 1.3
done


Comment 4 Christine Caulfield 2005-02-09 08:39:35 UTC
Assigning this to Alasdair (sorry!) as it's not really a clvm problem
as such and he understands the lvm linking better than I do

Comment 5 Alasdair Kergon 2005-02-15 15:26:09 UTC
If we *need* a cluster-aware lvm2 before /usr is mounted, we probably need to
generate a new binary for this purpose e.g. lvm2_cluster.static.  As yet, I
don't think we need it before /usr is mounted so this can wait.  lvm.static
should probably be fixed to fail cleanly in these circumstances.

Comment 6 Alasdair Kergon 2005-02-18 19:56:37 UTC
Workaround for now is not to use the lvm2 static binary.

In 2.01.05 if you invoke the lvm.static binary under any different name it runs
/usr/sbin/lvm instead if that exists.

Comment 7 Corey Marthaler 2005-02-23 21:43:55 UTC
That workaround doesn't appear to work.

[root@morph-05 sbin]# rpm -qa | grep lvm
lvm2-cluster-2.01.04-1.0.RHEL4
lvm2-2.01.05-1.0.RHEL4

[root@morph-05 sbin]# /sbin/vgchange -ay
vgchange: symbol lookup error: /usr/lib/liblvm2clusterlock.so:
undefined symbol: lvm_snprintf
[root@morph-05 sbin]# ./lvm.static vgchange -ay
lvm.static: symbol lookup error: /usr/lib/liblvm2clusterlock.so:
undefined symbol: lvm_snprintf
[root@morph-05 sbin]# /usr/sbin/vgchange -ay
  3 logical volume(s) in volume group "gfs" now active


Comment 8 Kiersten (Kerri) Anderson 2005-03-02 21:00:01 UTC
Blocker bug, adding it to the list

Comment 9 Alasdair Kergon 2005-03-08 14:53:27 UTC
The fix didn't work because the build system prepended DESTDIR to the path.
Try again with 2.01.07.


Comment 10 Alasdair Kergon 2005-03-22 17:12:07 UTC
Workaround believed to be OK:

[root@morph-02 sbin]# /sbin/vgchange -ay
  5 logical volume(s) in volume group "gfs" now active
[root@morph-02 sbin]# /usr/sbin/vgchange -ay
  5 logical volume(s) in volume group "gfs" now active
[root@morph-02 sbin]# /sbin/lvm.static vgchange -ay
lvm.static: symbol lookup error: /usr/lib/liblvm2clusterlock.so: undefined
symbol: lvm_snprintf

The last example should not be required: initscripts use --ignorelockingfailure
which should bypass the problem: pleast test that.

Comment 11 Corey Marthaler 2005-04-06 16:05:34 UTC
fix verified.

Comment 12 Tim Powers 2005-06-09 12:29:59 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2005-192.html



Note You need to log in before you can comment on or make changes to this bug.