Bug 1225072

Summary: OpenSSL multi-threading changes break build in RHEL5 (3.6.4beta1)
Product: [Community] GlusterFS Reporter: Kaleb KEITHLEY <kkeithle>
Component: rpcAssignee: Jeff Darcy <jdarcy>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.6.3CC: bugs, rabhat
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-v3.6.4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-04 15:27:21 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: 1222317    
Bug Blocks: 1216965    

Description Kaleb KEITHLEY 2015-05-26 13:59:41 UTC
Description of problem:

building glusterfs-3.6.4beta1 on CentOS 5.11

Making all in src
  CC     socket.lo
  CC     name.lo
In file included from socket.c:30:
../../../../rpc/xdr/src/glusterfs3-xdr.h:19: warning: ignoring #pragma GCC diagnostic
../../../../rpc/xdr/src/glusterfs3-xdr.h:20: warning: ignoring #pragma GCC diagnostic
socket.c:3639: error: expected ')' before '*' token
socket.c: In function 'init_openssl_mt':
socket.c:3667: warning: implicit declaration of function 'CRYPTO_THREADID_set_callback'
socket.c:3667: error: 'threadid_func' undeclared (first use in this function)
socket.c:3667: error: (Each undeclared identifier is reported only once
socket.c:3667: error: for each function it appears in.)
socket.c: In function 'socket_init':
socket.c:3687: warning: unused variable 'ret'
make[5]: *** [socket.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1


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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Kaleb KEITHLEY 2015-05-26 14:39:05 UTC
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DGF_LINUX_HOST_OS -I../../../../libglusterfs/src -I../../../../contrib/uuid -I../../../../libglusterfs/src -I../../../../rpc/rpc-lib/src/ -I../../../../rpc/xdr/src/ -Wall -g -O2 -g -O2 -MT socket.lo -MD -MP -MF .deps/socket.Tpo -c socket.c  -fPIC -DPIC -o .libs/socket.o
In file included from socket.c:30:
../../../../rpc/xdr/src/glusterfs3-xdr.h:19: warning: ignoring #pragma GCC diagnostic
../../../../rpc/xdr/src/glusterfs3-xdr.h:20: warning: ignoring #pragma GCC diagnostic
socket.c:3639: error: expected ')' before '*' token
socket.c: In function 'init_openssl_mt':
socket.c:3667: warning: implicit declaration of function 'CRYPTO_THREADID_set_callback'
socket.c:3667: error: 'threadid_func' undeclared (first use in this function)
socket.c:3667: error: (Each undeclared identifier is reported only once
socket.c:3667: error: for each function it appears in.)
socket.c: In function 'socket_init':
socket.c:3687: warning: unused variable 'ret'
make[5]: *** [socket.lo] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1

Comment 2 Kaleb KEITHLEY 2015-05-26 14:44:53 UTC
N.B. description has an excerpt of the build output of rpmbuild on CentOS box. Comment 1 has an ecerpt of the build output of conventional autogen.sh && configure && make with verbose compiler options.

Fedora Koji build (with __hardened_build) has additional warnings which probably merit fixing:

Making all in socket
Making all in src
  CC     socket.lo
  CC     name.lo
In file included from socket.c:30:
../../../../rpc/xdr/src/glusterfs3-xdr.h:19: warning: ignoring #pragma GCC diagnostic
../../../../rpc/xdr/src/glusterfs3-xdr.h:20: warning: ignoring #pragma GCC diagnostic
socket.c: In function 'ssl_do':
socket.c:270: warning: comparison is always false due to limited range of data type
socket.c: In function '__does_socket_rwv_error_need_logging':
socket.c:516: warning: comparison is always false due to limited range of data type
socket.c: At top level:
socket.c:3639: error: expected ')' before '*' token
socket.c: In function 'init_openssl_mt':
socket.c:3667: warning: implicit declaration of function 'CRYPTO_THREADID_set_callback'
socket.c:3667: error: 'threadid_func' undeclared (first use in this function)
socket.c:3667: error: (Each undeclared identifier is reported only once
socket.c:3667: error: for each function it appears in.)
socket.c: In function 'socket_init':
socket.c:3687: warning: unused variable 'ret'
make[5]: *** [socket.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Comment 3 Anand Avati 2015-05-26 15:09:28 UTC
REVIEW: http://review.gluster.org/10921 (socket: fix multithreading-related build problems on RHEL5) posted (#1) for review on release-3.6 by Jeff Darcy (jdarcy)

Comment 4 Anand Avati 2015-05-27 11:39:39 UTC
COMMIT: http://review.gluster.org/10921 committed in release-3.6 by Raghavendra Bhat (raghavendra) 
------
commit 1661ac3cfabdbdc39c18adb18e55ac6b85e3d05d
Author: Jeff Darcy <jdarcy>
Date:   Tue May 26 11:08:23 2015 -0400

    socket: fix multithreading-related build problems on RHEL5
    
    Change-Id: I3e145137c3ef738c4459c8d3098d6094ccfb008a
    BUG: 1225072
    Signed-off-by: Jeff Darcy <jdarcy>
    Reviewed-on: http://review.gluster.org/10921
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    Reviewed-by: Niels de Vos <ndevos>
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Raghavendra Bhat <raghavendra>

Comment 5 Kaushal 2016-02-04 15:27:21 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-v3.6.4, please open a new bug report.

glusterfs-v3.6.4 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/2015-July/022826.html
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user