Bug 1283302

Summary: volume start command is failing when glusterfs compiled with debug enabled
Product: [Community] GlusterFS Reporter: Kaleb KEITHLEY <kkeithle>
Component: glusterdAssignee: Kaleb KEITHLEY <kkeithle>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3.7.6CC: bugs, dlambrig, josferna, ndevos, rkavunga, rtalur, sankarshan, smohan
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.7.7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1245331 Environment:
Last Closed: 2016-04-08 11:26:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1245331    
Bug Blocks: 1279240    

Description Kaleb KEITHLEY 2015-11-18 16:22:44 UTC
+++ This bug was initially created as a clone of Bug #1245331 +++

Description of problem:


Version-Release number of selected component (if applicable):


How reproducible: Always

Steps to Reproduce:
1.compile glustterfs with debug enable(./configure  --enable-debug )

2. create volume(gluster vol create VOL host:/tmp/BRICK1 )

3. gluster vol start VOL

Actual results: command is failing, unable to start brick


Expected results: should success


I observed there are some undefined symbols in debug compilation mode:
 /usr/local/lib/libgfdb.so.0: undefined symbol: gf_sql_str2sync_t

Additional info:

brick log :
[2015-07-21 19:01:59.408729] I [MSGID: 100030] [glusterfsd.c:2296:main] 0-/usr/local/sbin/glusterfsd: Started running /usr/local/sbin/glusterfsd version 3.8dev (args: /usr/local/sbin/glusterfsd -s 192.168.0.4 --volfile-id VOL.192.168.0.4.tmp-BRICK1 -p /var/lib/glusterd/vols/VOL/run/192.168.0.4-tmp-BRICK1.pid -S /var/run/gluster/0a4faf3d8d782840484629176ecf307a.socket --brick-name /tmp/BRICK1 -l /var/log/glusterfs/bricks/tmp-BRICK1.log --xlator-option *-posix.glusterd-uuid=4ec09b0c-6043-40f0-bc1a-5cc312d49a78 --brick-port 49152 --xlator-option VOL-server.listen-port=49152)
[2015-07-21 19:02:00.075574] I [MSGID: 101190] [event-epoll.c:627:event_dispatch_epoll_worker] 0-epoll: Started thread with index 1
[2015-07-21 19:02:00.078905] W [MSGID: 101095] [xlator.c:189:xlator_dynload] 0-xlator: /usr/local/lib/libgfdb.so.0: undefined symbol: gf_sql_str2sync_t
[2015-07-21 19:02:00.078947] E [MSGID: 101002] [graph.y:211:volume_type] 0-parser: Volume 'VOL-changetimerecorder', line 16: type 'features/changetimerecorder' is not valid or not found on this machine
[2015-07-21 19:02:00.079020] E [MSGID: 101019] [graph.y:319:volume_end] 0-parser: "type" not specified for volume VOL-changetimerecorder
[2015-07-21 19:02:00.079150] E [MSGID: 100026] [glusterfsd.c:2151:glusterfs_process_volfp] 0-: failed to construct the graph
[2015-07-21 19:02:00.079399] W [glusterfsd.c:1214:cleanup_and_exit] (-->/usr/local/sbin/glusterfsd(mgmt_getspec_cbk+0x343) [0x40df64] -->/usr/local/sbin/glusterfsd(glusterfs_process_volfp+0x1a2) [0x409b58] -->/usr/local/sbin/glusterfsd(cleanup_and_exit+0x77) [0x407a6f] ) 0-: received signum (0), shutting down
~

--- Additional comment from Raghavendra Talur on 2015-07-22 02:44:23 EDT ---

Workaround for now: use std=gnu89 in CFLAGS.

--- Additional comment from Anand Avati on 2015-08-19 02:47:03 EDT ---

REVIEW: http://review.gluster.org/11769 (all: reduce "inline" usage) posted (#7) for review on master by Niels de Vos (ndevos)

--- Additional comment from Anand Avati on 2015-08-19 12:51:21 EDT ---

REVIEW: http://review.gluster.org/11769 (all: reduce "inline" usage) posted (#8) for review on master by Jeff Darcy (jdarcy)

--- Additional comment from Anand Avati on 2015-09-01 07:55:21 EDT ---

COMMIT: http://review.gluster.org/11769 committed in master by Jeff Darcy (jdarcy) 
------
commit 0773ca67fdb60a142207759fa6c07a69882ce59c
Author: Jeff Darcy <jdarcy>
Date:   Tue Jul 28 12:11:12 2015 -0400

    all: reduce "inline" usage
    
    There are three kinds of inline functions: plain inline, extern inline,
    and static inline.  All three have been removed from .c files, except
    those in "contrib" which aren't our problem.  Inlines in .h files, which
    are overwhelmingly "static inline" already, have generally been left
    alone.  Over time we should be able to "lower" these into .c files, but
    that has to be done in a case-by-case fashion requiring more manual
    effort.  This part was easy to do automatically without (as far as I can
    tell) any ill effect.
    
    In the process, several pieces of dead code were flagged by the
    compiler, and were removed.
    
    Change-Id: I56a5e614735c9e0a6ee420dab949eac22e25c155
    BUG: 1245331
    Signed-off-by: Jeff Darcy <jdarcy>
    Reviewed-on: http://review.gluster.org/11769
    Tested-by: NetBSD Build System <jenkins.org>
    Reviewed-by: Dan Lambright <dlambrig>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    Reviewed-by: Niels de Vos <ndevos>
    Reviewed-by: Raghavendra Bhat <raghavendra>
    Reviewed-by: Venky Shankar <vshankar>

Comment 1 Vijay Bellur 2015-11-18 17:31:53 UTC
REVIEW: http://review.gluster.org/12646 (all: reduce "inline" usage) posted (#1) for review on release-3.7 by Kaleb KEITHLEY (kkeithle)

Comment 2 Vijay Bellur 2015-12-02 14:18:47 UTC
REVIEW: http://review.gluster.org/12646 (all: reduce "inline" usage) posted (#2) for review on release-3.7 by Kaleb KEITHLEY (kkeithle)

Comment 3 Vijay Bellur 2016-01-18 09:02:42 UTC
COMMIT: http://review.gluster.org/12646 committed in release-3.7 by Niels de Vos (ndevos) 
------
commit 50ae3e67e4f294925fc840d3f83b77f7072af54d
Author: Kaleb S KEITHLEY <kkeithle>
Date:   Wed Nov 18 12:28:42 2015 -0500

    all: reduce "inline" usage
    
    There are three kinds of inline functions: plain inline, extern inline,
    and static inline.  All three have been removed from .c files, except
    those in "contrib" which aren't our problem.  Inlines in .h files, which
    are overwhelmingly "static inline" already, have generally been left
    alone.  Over time we should be able to "lower" these into .c files, but
    that has to be done in a case-by-case fashion requiring more manual
    effort.  This part was easy to do automatically without (as far as I can
    tell) any ill effect.
    
    In the process, several pieces of dead code were flagged by the
    compiler, and were removed.
    
    backport of Change-Id: I56a5e614735c9e0a6ee420dab949eac22e25c155,
    http://review.gluster.org/11769, BUG: 1245331
    
    Change-Id: Iba1efb0bc578ea4a5e9bf76b7bd93dc1be9eba44
    BUG: 1283302
    Signed-off-by: Kaleb S KEITHLEY <kkeithle>
    Reviewed-on: http://review.gluster.org/12646
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Niels de Vos <ndevos>

Comment 4 Kaleb KEITHLEY 2016-04-08 11:26:35 UTC
3.7.10

Comment 5 Kaushal 2016-04-19 07:48:31 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.7.7, please open a new bug report.

glusterfs-3.7.7 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] https://www.gluster.org/pipermail/gluster-users/2016-February/025292.html
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user