Bug 1744926

Summary: Error loading module '/usr/lib64/samba/pdb/ipasam.so': /usr/lib64/samba/pdb/ipasam.so: undefined symbol: DEBUGLEVEL_CLASS
Product: Red Hat Enterprise Linux 7 Reporter: Alexander Bokovoy <abokovoy>
Component: ipaAssignee: Florence Blanc-Renaud <frenaud>
Status: CLOSED ERRATA QA Contact: ipa-qe <ipa-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: fcami, ndehadra, rcritten, ssidhaye, tscherf
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ipa-4.6.6-4.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-31 19:55:52 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:

Description Alexander Bokovoy 2019-08-23 09:26:37 UTC
In RHEL 7.8-devel, ipasam module from FreeIPA is built against Samba 4.9.1. It doesn't work against Samba 4.10 which is a rebase in RHEL 7.8:

[2019/08/23 05:09:42.615616,  5, pid=31083, effective(0, 0), real(0, 0), class=passdb] ../../source3/passdb/pdb_interface.c:155(make_pdb_method_name)
  Attempting to find a passdb backend to match ipasam:ldapi://%2fvar%2frun%2fslapd-IPAEXAMPLE-TEST.socket (ipasam)
[2019/08/23 05:09:42.615634,  2, pid=31083, effective(0, 0), real(0, 0), class=passdb] ../../source3/passdb/pdb_interface.c:161(make_pdb_method_name)
  No builtin backend found, trying to load plugin
[2019/08/23 05:09:42.615648,  5, pid=31083, effective(0, 0), real(0, 0)] ../../lib/util/modules.c:160(load_module_absolute_path)
  load_module_absolute_path: Probing module '/usr/lib64/samba/pdb/ipasam.so'
[2019/08/23 05:09:42.620596,  5, pid=31083, effective(0, 0), real(0, 0)] ../../lib/util/modules.c:49(load_module)
  Error loading module '/usr/lib64/samba/pdb/ipasam.so': /usr/lib64/samba/pdb/ipasam.so: undefined symbol: DEBUGLEVEL_CLASS
[2019/08/23 05:09:42.620641,  0, pid=31083, effective(0, 0), real(0, 0), class=passdb] ../../source3/passdb/pdb_interface.c:171(make_pdb_method_name)
  No builtin nor plugin backend for ipasam found


FreeIPA ipasam module uses DEBUG() macro from Samba which included DEBUGLEVEL_CLASS variable in Samba < 4.10. It was renamed to dbgc_config:

commit 3b293c669024e55d2c5343e85f1f43a03682b478
Author: Ralph Boehme <slow>
Date:   Wed Dec 12 22:19:06 2018 +0100

    debug: rename DEBUGLEVEL_CLASS variable to dbgc_config
    
    Variable names should not be given in uppercase.
    
    Signed-off-by: Ralph Boehme <slow>
    Reviewed-by: Jeremy Allison <jra>

$ git tag --contains 3b293c669024e55d2c5343e85f1f43a03682b478|grep samba
samba-4.10.0
samba-4.10.0rc1
samba-4.10.0rc2
samba-4.10.0rc3
samba-4.10.0rc4
samba-4.10.1
samba-4.10.2
samba-4.10.3
samba-4.10.4
samba-4.10.5
samba-4.10.6
samba-4.11.0rc1

As result, binary compatibility is broken and ipa package needs to be rebuilt against Samba 4.10, also raising dependencies.

Comment 2 Alexander Bokovoy 2019-08-23 09:53:51 UTC
Verification is sanity-only:

For incorrect version the following will be true:
$ pdbedit -s /dev/null -b ipasam -d5 |grep Error
Can't initialize passdb backend.
Error loading module '/usr/lib64/samba/pdb/ipasam.so': /usr/lib64/samba/pdb/ipasam.so: undefined symbol: DEBUGLEVEL_CLASS

For fixed version there should be no 'Error loading module' message.

Comment 6 Sumedh Sidhaye 2019-12-16 11:43:17 UTC
Build for verification:
[root@master ~]# rpm -q ipa-server samba ipa-server-trust-ad
ipa-server-4.6.6-11.el7.x86_64
samba-4.10.4-9.el7.x86_64
ipa-server-trust-ad-4.6.6-11.el7.x86_64

Test Steps:
[root@master ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.8 Beta (Maipo)
[root@master ~]# pdbedit -s /dev/null -b ipasam -d5 |grep Error
Can't initialize passdb backend.
[root@master ~]#

Comment 9 errata-xmlrpc 2020-03-31 19:55:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:1083