Bug 596841 - EPEL package libtalloc is incompatible with RHEL package samba3x
Summary: EPEL package libtalloc is incompatible with RHEL package samba3x
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: libtalloc
Version: el5
Hardware: All
OS: Linux
low
high
Target Milestone: ---
Assignee: Stephen Gallagher
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords:
Depends On: 596883
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-05-27 15:49 UTC by topical
Modified: 2010-06-30 14:22 UTC (History)
3 users (show)

(edit)
Clone Of:
(edit)
Last Closed: 2010-06-30 14:22:03 UTC


Attachments (Terms of Use)

Description topical 2010-05-27 15:49:07 UTC
Description of problem:

The EPEL package libtalloc contains the libraries libtalloc-compat1-2.0.1.so and libtalloc.so.2.0.1. The RHEL package libtalloc contains libtalloc.so.1. So, when you install samba3x (which is dependand on libtalloc) and have EPEL enabled, the new package of the EPEL repository is chosen instead of the old RHEL package.
 
Unfortunately, libtalloc-compat1-2.0.1.so (alias libtalloc.so.1) is incompatible with samba3x. When you look at the source code of the samba3x package, you see that its libtalloc is substantially newer then the compat-library provided by the EPEL package. I don't know whether samba3x should generate libtalloc.so.2 instead or if the compatibility library is broken - in the end they don't fit together.
 
The effect is subtile: timed events aren't automatically destructed anymore, so whenever a timed event is handled, smbd stucks in an infinite loop, calling the event handler again and again. It seems that this problem mainly occurs if you are using LDAP as the passdb backend. In the end, smbd runs for a couple of minutes and then suddenly freezes.

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

libtalloc.2.0.1-2.el5

How reproducible:

Fully reproducible.

Steps to Reproduce:

1. activate EPEL repository in your RHEL 5.5 installation (without yum-priorities!)
2. install samba3x
3. configure samba, using ldapsam backend (though the problem should always occur)
4. start smbd
5. wait 3 minutes
6. issue any "net" command, e.g. "net rpc rights list accounts"
7. smbd gets 100% load, net command aborts after a timeout

I used x86_64, but that shouldn't matter according to my findings.
  
Actual results:

smbd is stuck in a infinite loop. Activating log level "all:10" in /etc/samba/smb.conf shows following output in "/var/log/smbd":

[2010/05/26 11:15:13, 10] lib/events.c:run_events(231)
  Running event "smbldap_idle_fn" 2aeae0de73c0
[2010/05/26 11:15:13, 10] lib/smbldap.c:smbldap_idle_fn(1641)
  ldap connection not connected...

These two lines are repeated forever at a very high rate.

Reason is that smbldap_idle_fn doesn't unregister the timed event as TALLOC_FREE doesn't call the destructor.

Expected results:

Well, the event handler should only get called once and smbd should keep reacting to client requests.

Additional info:

There are two solutions:
1. use yum priorities, so libtalloc of EPEL is ignored, and do a downgrade
2. replace EPEL's source code of libtalloc-compat1-2.0.1.so with the one provided by samba3x

Looking at the source code of samba3x, you see that its libtalloc calls the user-provided destructor in talloc_free, whereas the compat-library of EPEL's libtalloc package only unlinks the memory without calling any destructor. So,  libtalloc-compat1-2.0.1.so seems to be much too old for samba3x.

Comment 1 Stephen Gallagher 2010-05-27 18:34:58 UTC
For the immediate short-term, libtalloc in EPEL will be marked as Conflicts: samba3x-common

We are working with the samba3x maintainer and Red Hat to rebuild samba3x against libtalloc-2.0.1 in RHEL 5.6.

Comment 2 Fedora Update System 2010-05-27 18:35:31 UTC
libtalloc-2.0.1-3.el5 has been submitted as an update for Fedora EPEL 5.
http://admin.fedoraproject.org/updates/libtalloc-2.0.1-3.el5

Comment 3 Fedora Update System 2010-05-29 00:18:02 UTC
libtalloc-2.0.1-3.el5 has been pushed to the Fedora EPEL 5 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update libtalloc'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/libtalloc-2.0.1-3.el5

Comment 4 Robert Scheck 2010-06-14 15:18:55 UTC
Conflicting with samba3x is NOT the correct solution. Because now, a "yum
install samba3x" fails with "libtalloc-2.0.1-3.el5.x86_64 from epel-testing
has depsolving problems: libtalloc conflicts with samba3x-common" - because
of "Processing Dependency: libtalloc.so.1()(64bit) for package: samba3x"

From my point of view you are simply not allowed to provide a library having
the same soname and same soversion as RHEL 5 does - this violates the EPEL
policy right now, because we conflict with RHEL as our upstream.

Please fix this issue as soon as possible...

Comment 5 Fedora Update System 2010-06-18 16:42:27 UTC
libtalloc-2.0.1-7.el5 has been pushed to the Fedora EPEL 5 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update libtalloc'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/libtalloc-2.0.1-7.el5

Comment 6 Fedora Update System 2010-06-30 14:21:58 UTC
libtalloc-2.0.1-7.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.