Bug 1429696 - ldd libgfxdr.so.0.0.1: undefined symbol: __gf_free
Summary: ldd libgfxdr.so.0.0.1: undefined symbol: __gf_free
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: build
Version: mainline
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kaleb KEITHLEY
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1430512
TreeView+ depends on / blocked
 
Reported: 2017-03-06 21:53 UTC by Vitaly Lipatov
Modified: 2017-05-30 18:46 UTC (History)
2 users (show)

Fixed In Version: glusterfs-3.11.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1430512 (view as bug list)
Environment:
Last Closed: 2017-05-30 18:46:48 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Vitaly Lipatov 2017-03-06 21:53:21 UTC
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?

Comment 1 Saravanakumar 2017-03-07 12:20:46 UTC
Related mail discussion:
http://lists.gluster.org/pipermail/gluster-devel/2016-September/050911.html

Comment 2 Worker Ant 2017-03-08 20:00:10 UTC
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 3 Worker Ant 2017-03-13 22:17:57 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#2) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 4 Worker Ant 2017-03-14 11:02:45 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#3) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 5 Worker Ant 2017-03-15 12:42:14 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#4) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 6 Worker Ant 2017-03-15 20:03:40 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#5) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 7 Worker Ant 2017-03-15 22:59:16 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#6) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 8 Worker Ant 2017-03-15 23:34:14 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#7) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 9 Worker Ant 2017-03-16 12:03:28 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#8) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 10 Worker Ant 2017-03-21 10:37:19 UTC
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#9) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 11 Worker Ant 2017-03-21 15:18:54 UTC
COMMIT: https://review.gluster.org/16873 committed in master by Niels de Vos (ndevos) 
------
commit f21fd308fcfab6151e7c8f60642d8dfcbec0cc48
Author: Kaleb S. KEITHLEY <kkeithle>
Date:   Wed Mar 8 14:44:50 2017 -0500

    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 or 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 the other things 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
    
    Change-Id: Iede8a30e3103176cb8f0b054885f30fcb352492b
    BUG: 1429696
    Signed-off-by: Kaleb S. KEITHLEY <kkeithle>
    Reviewed-on: https://review.gluster.org/16873
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Niels de Vos <ndevos>

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

Comment 13 Worker Ant 2017-03-27 10:52:30 UTC
COMMIT: https://review.gluster.org/16941 committed in master by Niels de Vos (ndevos) 
------
commit b96da537f60d75f896973c9f61007baec42fcf17
Author: Kaleb S. KEITHLEY <kkeithle>
Date:   Fri Mar 24 08:32:39 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.
    
    Change-Id: I006066f0e7c3f8b65189f97c70089f3422e3e08b
    BUG: 1429696
    Signed-off-by: Kaleb S. KEITHLEY <kkeithle>
    Reviewed-on: https://review.gluster.org/16941
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Niels de Vos <ndevos>
    Tested-by: Anoop C S <anoopcs>

Comment 14 Worker Ant 2017-03-27 12:45:08 UTC
REVIEW: https://review.gluster.org/16954 (build: errors generating xdr stubs+headers with `make -j`) posted (#1) for review on master by Kaleb KEITHLEY (kkeithle)

Comment 15 Worker Ant 2017-03-29 11:22:29 UTC
COMMIT: https://review.gluster.org/16954 committed in master by Kaleb KEITHLEY (kkeithle) 
------
commit 57341d25db8b16e8a1fc7d40f6f56b5200f3547d
Author: Kaleb S. KEITHLEY <kkeithle>
Date:   Mon Mar 27 08:35:51 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.
    
    BUG: 1429696
    Change-Id: Icca2de035255a7759563bf06d853950dddc5724d
    Signed-off-by: Kaleb S. KEITHLEY <kkeithle>
    Reviewed-on: https://review.gluster.org/16954
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Niels de Vos <ndevos>

Comment 16 Worker Ant 2017-03-30 09:48:29 UTC
REVIEW: https://review.gluster.org/16969 (build: add copied .x files to .gitignore) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 17 Worker Ant 2017-03-30 17:27:26 UTC
COMMIT: https://review.gluster.org/16969 committed in master by Niels de Vos (ndevos) 
------
commit ed89f3ef064b6100bb0731f2493d915f6fb141c3
Author: Niels de Vos <ndevos>
Date:   Thu Mar 30 11:45:43 2017 +0200

    build: add copied .x files to .gitignore
    
    The new rpc/xdr/gen/ directiry contains copies of the .x files from
    rpc/xdr/src/. This is needed to generate the headers for the cyclic
    dependency for libglusterfs <-> rpc. These files should never be
    included in the git repository, so adding them to .gitignore.
    
    BUG: 1429696
    Change-Id: Ia9dd104853e2dbde49b368169dc15c465dff0323
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: https://review.gluster.org/16969
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>

Comment 18 Niels de Vos 2017-04-04 11:50:08 UTC
Unfortunately this needs and other follow-up.

Comment 19 Worker Ant 2017-04-04 11:50:59 UTC
REVIEW: https://review.gluster.org/16994 (build: place generated XDR .h and .c files under $(top_builddir)) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 20 Worker Ant 2017-04-04 12:39:50 UTC
REVIEW: https://review.gluster.org/16994 (build: place generated XDR .h and .c files under $(top_builddir)) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 21 Worker Ant 2017-04-05 01:27:52 UTC
COMMIT: https://review.gluster.org/16994 committed in master by Kaleb KEITHLEY (kkeithle) 
------
commit 7a49a4a6e3e2224afea7a961fbee9a460b9d58a0
Author: Niels de Vos <ndevos>
Date:   Tue Apr 4 12:55:27 2017 +0200

    build: place generated XDR .h and .c files under $(top_builddir)
    
    Change-Id: I0487337223a54a52e73088cb6dd812ce6d47178d
    BUG: 1429696
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: https://review.gluster.org/16994
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Zhou Zhengping <johnzzpcrystal>
    Tested-by: Zhou Zhengping <johnzzpcrystal>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>

Comment 22 Shyamsundar 2017-05-30 18:46:48 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.11.0, please open a new bug report.

glusterfs-3.11.0 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/announce/2017-May/000073.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.