Bug 1430512 - /libgfxdr.so.0.0.1: undefined symbol: __gf_free
Summary: /libgfxdr.so.0.0.1: undefined symbol: __gf_free
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: build
Version: 3.10
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kaleb KEITHLEY
QA Contact:
URL:
Whiteboard:
Depends On: 1429696
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-03-08 20:01 UTC by Kaleb KEITHLEY
Modified: 2017-04-05 00:01 UTC (History)
2 users (show)

Fixed In Version: glusterfs-3.10.1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1429696
Environment:
Last Closed: 2017-04-05 00:01:42 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Kaleb KEITHLEY 2017-03-08 20:01:58 UTC
+++ This bug was initially created as a clone of Bug #1429696 +++

From bug 1330604 
> Note 2. Why is/was libgfxdr.so (.../rpc/xdr/src/...) linked with
>    libglusterfs? A cut-and-paste mistake? It has no references to
>    symbols in libglusterfs.

You was wrong with it. There are GF_FREE calls (__gf_free function from libglusterfs really)..

So I get
/usr/lib64/libgfxdr.so.0.0.1: undefined symbol: __gf_free
after build.

If it is true that libgfxdr does not use libglusterfs, why it use its headers?

--- Additional comment from Saravanakumar on 2017-03-07 07:20:46 EST ---

Related mail discussion:
http://lists.gluster.org/pipermail/gluster-devel/2016-September/050911.html

--- Additional comment from Worker Ant on 2017-03-08 15:00:10 EST ---

REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#1) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 1 Worker Ant 2017-03-08 20:12:00 UTC
REVIEW: https://review.gluster.org/16874 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#1) for review on release-3.10 by Kaleb KEITHLEY (kkeithle)

Comment 2 Worker Ant 2017-03-16 13:27:51 UTC
REVIEW: https://review.gluster.org/16874 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#2) for review on release-3.10 by Kaleb KEITHLEY (kkeithle)

Comment 3 Worker Ant 2017-03-21 17:12:19 UTC
COMMIT: https://review.gluster.org/16874 committed in release-3.10 by Kaleb KEITHLEY (kkeithle) 
------
commit c986f10adfbc5d4f728ea84640cc1c81532105ae
Author: Kaleb S. KEITHLEY <kkeithle>
Date:   Wed Mar 8 15:04:50 2017 -0500

    build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs
    
    build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs
    
    The previous change to remove the xdrgen script exposed (or
    created) a recursive build dependency: libglusterfs needs the
    generated headers, and libgfxdr should be linked with libglusterfs
    for GF_FREE/__gf_free.
    
    (Much grumbling about libglusterfs being the kitchen sink of gluster
    elided. This would not be necessary if there were two more more libs,
    a gluster "runtime" library with common gluster code shared by the
    xlators and daemons, and a utility library with things like the
    rbtree, memory allocation, and whatnot.)
    
    So. Link at build time or link at runtime? For truth-and-beauty, link
    with libglusterfs.so at build time. Without truth-and-beauty, don't
    link with libglusterfs and rely on other the libs that link with
    libglusterfs to provide resolution of __gf_free().
    
    Truth-and-beauty it is. But how to generate the headers first, then
    build libglusterfs, then come back and build libgfxdr? Autotools is a
    maze of twisty passages, all different. Things that work with gnu
    make on linux don't work with the BSD make. Finally I hit on this
    solution. Add a shadow directory where make only generates the headers,
    then build libglusterfs using the generated headers, and finally build
    libgfxdr and link with libglusterfs.
    
    See original BZ 1330604
    change http://review.gluster.org/14085
    
    master BZ 1429696
    master change: https://review.gluster.org/#/c/16873/
    
    Change-Id: Iede8a30e3103176cb8f0b054885f30fcb352492b
    BUG: 1430512
    Signed-off-by: Kaleb S. KEITHLEY <kkeithle>
    Reviewed-on: https://review.gluster.org/16874
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>

Comment 4 Worker Ant 2017-03-24 12:42:37 UTC
REVIEW: https://review.gluster.org/16942 (build: errors generating xdr stubs+headers with `make -j`) posted (#1) for review on release-3.10 by Kaleb KEITHLEY (kkeithle)

Comment 5 Worker Ant 2017-03-27 12:50:27 UTC
REVIEW: https://review.gluster.org/16942 (build: errors generating xdr stubs+headers with `make -j`) posted (#2) for review on release-3.10 by Kaleb KEITHLEY (kkeithle)

Comment 6 Worker Ant 2017-03-28 12:08:15 UTC
COMMIT: https://review.gluster.org/16942 committed in release-3.10 by Shyamsundar Ranganathan (srangana) 
------
commit e43e818c902a27a9760311b4b8ba6303b34ec2b0
Author: Kaleb S. KEITHLEY <kkeithle>
Date:   Fri Mar 24 08:40:00 2017 -0400

    build: errors generating xdr stubs+headers with `make -j`
    
    Using a makebomb, on f23 at least, blows up when generating the
    xdr headers and stubs. (Works reliably on f25 though, go figure.)
    This change appears to mitigate the race on f23.
    
    Master change https://review.gluster.org/16941
    Master BZ: 1429696
    
    Change-Id: I006066f0e7c3f8b65189f97c70089f3422e3e08b
    BUG: 1430512
    Signed-off-by: Kaleb S. KEITHLEY <kkeithle>
    Reviewed-on: https://review.gluster.org/16942
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Shyamsundar Ranganathan <srangana>

Comment 7 Shyamsundar 2017-04-05 00:01:42 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.10.1, please open a new bug report.

glusterfs-3.10.1 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://lists.gluster.org/pipermail/gluster-users/2017-April/030494.html
[2] https://www.gluster.org/pipermail/gluster-users/


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