Bug 1550392

Summary: Failed to access volume via Samba with undefined symbol from socket.so
Product: [Community] GlusterFS Reporter: Kaushal <kaushal>
Component: coreAssignee: Kaushal <kaushal>
Status: CLOSED NOTABUG QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.0CC: anoopcs, bugs, jthottan, kaushal
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1532238 Environment:
Last Closed: 2018-03-02 08:14:50 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: 1532238    
Bug Blocks: 1539842    

Description Kaushal 2018-03-01 07:39:39 UTC
+++ This bug was initially created as a clone of Bug #1532238 +++

Description of problem:
Following error was seen in gfapi log while trying to access a basic GlusterFS volume via Samba.

[2018-01-08 09:21:20.026546] E [rpc-transport.c:284:rpc_transport_load] 0-rpc-transport: /usr/local/lib/glusterfs/4.0dev1/rpc-transport/socket.so: undefined symbol: rpc_transport_notify
[2018-01-08 09:21:20.026606] W [rpc-transport.c:288:rpc_transport_load] 0-rpc-transport: volume 'gfapi': transport-type 'socket' is not valid or not found on this machine
[2018-01-08 09:21:20.026616] W [rpc-clnt.c:1065:rpc_clnt_connection_init] 0-gfapi: loading of new rpc-transport failed
[2018-01-08 09:21:20.026632] W [MSGID: 104026] [glfs-mgmt.c:1005:glfs_mgmt_init] 0-gfapi: failed to create rpc clnt
[2018-01-08 09:21:20.030210] I [timer.c:88:gf_timer_call_cancel] (-->/usr/local/lib/libglusterfs.so.0(gf_log_fini+0x42) [0x7f07f38d15db] -->/usr/local/lib/libglusterfs.so.0(gf_log_disable_suppression_before_exit+0x52) [0x7f07f38d1575] -->/usr/local/lib/libglusterfs.so.0(gf_timer_call_cancel+0xcd) [0x7f07f38e197a] ) 0-timer: ctx cleanup started


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

How reproducible:
Always

Steps to Reproduce:
1. Create a basic 2x2 volume 
2. Try accessing the volume via Samba using any of the following means:
    a) Kernel CIFS client
    b) smbclient utility
    c) Windows/Mac OS

Actual results:
# smbclient -U root%smb \\\\192.168.122.102\\gluster-vol
tree connect failed: NT_STATUS_UNSUCCESSFUL

Connection failed with error mentioned above in client logs.

Expected results:
# smbclient -U root%smb \\\\192.168.122.102\\gluster-vol
Try "help" to get a list of possible commands.
smb: \>

Connection should be successful without any errors.

--- Additional comment from Worker Ant on 2018-01-08 18:26:15 IST ---

REVIEW: https://review.gluster.org/19163 (build: Link libgfrpc within rpc-transport shared libraries) posted (#1) for review on master by Anoop C S

--- Additional comment from Worker Ant on 2018-01-11 18:12:41 IST ---

COMMIT: https://review.gluster.org/19163 committed in master by \"Anoop C S\" <anoopcs> with a commit message- build: Link libgfrpc within rpc-transport shared libraries

Now with https://review.gluster.org/#/c/19056/ merged, we perform
dlopen() with RTLD_LOCAL so that every shared library is expected to
be explicitly linked against other required libraries.

"undefined symbol ..." was seen while trying to access GlusterFS volumes
via NFS-Ganesha/Samba using libgfapi resulting in an unusable state.

This is a follow-up patch to https://review.gluster.org/#/c/17659/
to make sure that we link libgfrpc too while making socket and rdma
rpc-transport shared libraries.

Change-Id: I9943cdc449c257ded3cb9f9f2becdd5784d1d82d
BUG: 1532238
Signed-off-by: Anoop C S <anoopcs>

--- Additional comment from Worker Ant on 2018-01-18 14:09:07 IST ---

REVIEW: https://review.gluster.org/19225 (build: Link server.so against glusterfsd shared object) posted (#1) for review on master by Anoop C S

--- Additional comment from Kaushal on 2018-03-01 13:06:20 IST ---

This issue also prevents GD2 from working with built packages, and needs to be fixed if GD2 is to manage GlusterFS clusters.

Comment 1 Kaushal 2018-03-02 08:14:50 UTC
Closing this bug, as it is about an actually different problem to the on GD2 faced. The review that led me here, was trying to solve the problem faced by GD2 as well, so I got confused.

The fix for the original bug, is already present in glusterfs-4.0.0.