Bug 759183 - Mixing transaction and non-transaction plugins can cause deadlock
Summary: Mixing transaction and non-transaction plugins can cause deadlock
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: 389-ds-base
Version: 15
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Rich Megginson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 389_1.2.10 758830 760369 766320
TreeView+ depends on / blocked
 
Reported: 2011-12-01 16:03 UTC by Rob Crittenden
Modified: 2012-08-07 20:26 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 760369 (view as bug list)
Environment:
Last Closed: 2012-08-07 20:26:35 UTC


Attachments (Terms of Use)

Description Rob Crittenden 2011-12-01 16:03:59 UTC
Description of problem:

If memberof is configured as a betxnpostoperation plugin then modifying group membership can deadlock ns-slapd.

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

389-ds-base-1.2.10-0.5.a5.fc15.x86_64

Steps to Reproduce:
1. Install and configure an IPA server
2. set nsslapd-plugintype for memberof to betxnpostoperation
3. ipa group-add-member --users=admin editors
<lock>

Additional info:

#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165
#1  0x00007fe04c8e3b5b in __db_pthread_mutex_lock (env=0xc504f0, 
    mutex=<optimized out>) at ../../mutex/mut_pthread.c:318

#2  0x00007fe04c8e314a in __db_tas_mutex_lock_int (nowait=0, mutex=1209, 
    env=0xc504f0) at ../../mutex/mut_tas.c:218
#3  __db_tas_mutex_lock_int (nowait=0, mutex=1209, env=0xc504f0)
    at ../../mutex/mut_tas.c:244
#4  __db_tas_mutex_lock (env=0xc504f0, mutex=1209) at ../../mutex/mut_tas.c:248
#5  0x00007fe04c972d83 in __lock_get_internal (lt=0xb9a640, 
    sh_locker=<optimized out>, flags=0, obj=0x3015, lock_mode=<optimized out>, 
    timeout=0, lock=0x7fe0267dc8f0) at ../../lock/lock.c:953
#6  0x00007fe04c9732c2 in __lock_get (env=<optimized out>, 
    locker=0x7fe04917b180, flags=<optimized out>, obj=<optimized out>, 
    lock_mode=<optimized out>, lock=<optimized out>) at ../../lock/lock.c:459
#7  0x00007fe04c9a22d6 in __db_lget (dbc=<optimized out>, action=0, 
    pgno=<optimized out>, mode=<optimized out>, lkflags=<optimized out>, 
    lockp=0x7fe0267dc8f0) at ../../db/db_meta.c:1203
#8  0x00007fe04c900ac8 in __bam_search (dbc=0xb9e150, root_pgno=1, 
    key=0x7fe0267dcf00, flags=12802, slevel=1, recnop=0x0, 
    exactp=0x7fe0267dca9c) at ../../btree/bt_search.c:702
#9  0x00007fe04c8ec1b6 in __bamc_search (dbc=0xb9e150, root_pgno=1, 
    key=0x7fe0267dcf00, flags=<optimized out>, exactp=0x7fe0267dca9c)
    at ../../btree/bt_cursor.c:2785
#10 0x00007fe04c8f0495 in __bamc_put (dbc=0xb9e150, key=0x7fe0267dcf00, 
    data=0x7fe0267dced0, flags=14, pgnop=0x7fe0267dcafc)
    at ../../btree/bt_cursor.c:2130
#11 0x00007fe04c9928e9 in __dbc_iput (dbc=0xb9e150, key=0x7fe0267dcf00, 
    data=0x7fe0267dced0, flags=14) at ../../db/db_cam.c:2103
#12 0x00007fe04c9946a9 in __dbc_put (dbc=<optimized out>, key=0x7fe0267dcf00, 
    data=0x7fe0267dced0, flags=14) at ../../db/db_cam.c:2016
#13 0x00007fe04c986c5e in __db_put (dbp=0xc40bb0, ip=<optimized out>, 
    txn=<optimized out>, key=0x7fe0267dcf00, data=0x7fe0267dced0, flags=0)
    at ../../db/db_am.c:477
#14 0x00007fe04c99f3cb in __db_put_pp (dbp=0xc40bb0, txn=0x7fe00c01d900, 
    key=0x7fe0267dcf00, data=0x7fe0267dced0, flags=0)
    at ../../db/db_iface.c:1579
#15 0x00007fe04cc63c76 in id2entry_add_ext (be=0xaed320, e=0x7fe00c018030, 
    txn=0x7fe0267dd030, encrypt=<optimized out>)
    at ldap/servers/slapd/back-ldbm/id2entry.c:135
#16 0x00007fe04cc8f20a in ldbm_back_modify (pb=0x7fe00c01a6e0)
    at ldap/servers/slapd/back-ldbm/ldbm_modify.c:445
#17 0x000000339627bd53 in op_shared_modify (pb=<optimized out>, pw_change=0, 
    old_pw=0x0) at ldap/servers/slapd/modify.c:903
#18 0x000000339627c175 in modify_internal_pb (pb=0x7fe00c01a6e0)
    at ldap/servers/slapd/modify.c:584
#19 0x00007fe04c2348eb in mep_mod_post_op (pb=<optimized out>)
    at ldap/servers/plugins/mep/mep.c:2124
#20 0x00000033962891fd in plugin_call_func (list=0xaae970, operation=521, 
    pb=0x7fe00c00d130, call_one=0) at ldap/servers/slapd/plugin.c:1448
#21 0x00000033962893e4 in plugin_call_list (pb=0x7fe00c00d130, operation=521, 
    list=<optimized out>) at ldap/servers/slapd/plugin.c:1410
#22 plugin_call_plugins (pb=0x7fe00c00d130, whichfunction=521)
    at ldap/servers/slapd/plugin.c:395
#23 0x000000339627bdee in op_shared_modify (pb=<optimized out>, pw_change=0, 
    old_pw=0x0) at ldap/servers/slapd/modify.c:940
#24 0x000000339627c175 in modify_internal_pb (pb=0x7fe00c00d130)
    at ldap/servers/slapd/modify.c:584
#25 0x00007fe04c029a5c in memberof_fix_memberof_callback (e=<optimized out>, 
    callback_data=0x7fe0267e5730)
    at ldap/servers/plugins/memberof/memberof.c:2431
#26 0x00007fe04c02a24d in memberof_modop_one_replace_r (pb=0xdf8a40, 
    config=0x7fe0267e58b0, mod_op=0, 
    group_dn=0x7fe00c0039f0 "cn=editors,cn=groups,cn=accounts,dc=example,dc=com", 
    op_this=0x7fe00c0039f0 "cn=editors,cn=groups,cn=accounts,dc=example,dc=com", 
    replace_with=0x0, 
    op_to=0x7fe00c007b10 "uid=admin,cn=users,cn=accounts,dc=example,dc=com", stack=0x0, txn=0x7fe00c00b5c0) at ldap/servers/plugins/memberof/memberof.c:1308
#27 0x00007fe04c02ad0c in memberof_modop_one_r (stack=0x0, txn=0x7fe00c00b5c0, 
    op_to=<optimized out>, 
    op_this=0x7fe00c0039f0 "cn=editors,cn=groups,cn=accounts,dc=example,dc=com", 
    group_dn=0x7fe00c0039f0 "cn=editors,cn=groups,cn=accounts,dc=example,dc=com", 
    mod_op=0, config=0x7fe0267e58b0, pb=0xdf8a40)
    at ldap/servers/plugins/memberof/memberof.c:1087
#28 memberof_modop_one (mod_op=0, txn=0x7fe00c00b5c0, op_to=<optimized out>, 
    op_this=0x7fe00c0039f0 "cn=editors,cn=groups,cn=accounts,dc=example,dc=com", 
    config=0x7fe0267e58b0, pb=0xdf8a40)
    at ldap/servers/plugins/memberof/memberof.c:1076
#29 memberof_add_one (txn=0x7fe00c00b5c0, addto=<optimized out>, 
    addthis=0x7fe00c0039f0 "cn=editors,cn=groups,cn=accounts,dc=example,dc=com", 
    config=0x7fe0267e58b0, pb=0xdf8a40)
    at ldap/servers/plugins/memberof/memberof.c:1373
#30 memberof_replace_list (pb=0xdf8a40, config=0x7fe0267e58b0, 
    group_dn=0x7fe00c0039f0 "cn=editors,cn=groups,cn=accounts,dc=example,dc=com", 
    txn=0x7fe00c00b5c0) at ldap/servers/plugins/memberof/memberof.c:2121
#31 0x00007fe04c02b7cb in memberof_postop_modify (pb=0xdf8a40)
    at ldap/servers/plugins/memberof/memberof.c:892
#32 0x00000033962891fd in plugin_call_func (list=0xab20c0, operation=561, 
    pb=0xdf8a40, call_one=0) at ldap/servers/slapd/plugin.c:1448
#33 0x00000033962893e4 in plugin_call_list (pb=0xdf8a40, operation=561, 
    list=<optimized out>) at ldap/servers/slapd/plugin.c:1410
#34 plugin_call_plugins (pb=0xdf8a40, whichfunction=561)
    at ldap/servers/slapd/plugin.c:395
#35 0x00007fe04cc8f733 in ldbm_back_modify (pb=0xdf8a40)
    at ldap/servers/slapd/back-ldbm/ldbm_modify.c:557
#36 0x000000339627bd53 in op_shared_modify (pb=<optimized out>, pw_change=0, 
    old_pw=0x0) at ldap/servers/slapd/modify.c:903
#37 0x000000339627c940 in do_modify (pb=0xdf8a40)
    at ldap/servers/slapd/modify.c:372
#38 0x0000000000416d3e in connection_dispatch_operation (pb=<optimized out>, 
    op=0xde6140, conn=0x7fe044273560) at ldap/servers/slapd/connection.c:583
#39 connection_threadmain () at ldap/servers/slapd/connection.c:2328
#40 0x0000003ab9828553 in _pt_root (arg=0xe1d280)
    at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:187
#41 0x0000003bf9007b31 in start_thread (arg=0x7fe0267ec700)
    at pthread_create.c:305
#42 0x0000003bf88dfd2d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Comment 1 Alexander Bokovoy 2011-12-11 17:46:46 UTC
As this issue reproducible without slapi-nis/schema-compat, mark the other two bugs dependent on this one.

Comment 2 Rich Megginson 2012-01-09 15:34:46 UTC
Upstream ticket:
https://fedorahosted.org/389/ticket/167

Comment 3 Fedora Update System 2012-01-24 00:29:29 UTC
389-ds-base-1.2.10-0.8.a7.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.8.a7.fc16

Comment 4 Fedora Update System 2012-01-24 00:32:12 UTC
389-ds-base-1.2.10-0.8.a7.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.8.a7.fc15

Comment 5 Fedora Update System 2012-01-24 00:33:30 UTC
389-ds-base-1.2.10-0.8.a7.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.8.a7.el5

Comment 6 Fedora Update System 2012-01-24 01:43:58 UTC
Package 389-ds-base-1.2.10-0.8.a7.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing 389-ds-base-1.2.10-0.8.a7.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-0871/389-ds-base-1.2.10-0.8.a7.fc16
then log in and leave karma (feedback).

Comment 7 Fedora Update System 2012-01-24 21:24:42 UTC
389-ds-base-1.2.10-0.9.a8.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.9.a8.fc16

Comment 8 Fedora Update System 2012-01-24 21:25:17 UTC
389-ds-base-1.2.10-0.9.a8.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.9.a8.fc15

Comment 9 Fedora Update System 2012-01-24 21:26:25 UTC
389-ds-base-1.2.10-0.9.a8.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.9.a8.el5

Comment 10 Fedora Update System 2012-02-04 03:36:34 UTC
389-ds-base-1.2.10-0.10.rc1.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.10.rc1.fc16

Comment 11 Fedora Update System 2012-02-04 03:37:11 UTC
389-ds-base-1.2.10-0.10.rc1.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.10.rc1.fc15

Comment 12 Fedora Update System 2012-02-04 03:37:56 UTC
389-ds-base-1.2.10-0.10.rc1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10-0.10.rc1.el5

Comment 13 Fedora Update System 2012-02-11 22:03:44 UTC
389-ds-base-1.2.10-0.10.rc1.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2012-02-13 20:13:22 UTC
389-ds-base-1.2.10.0-1.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.0-1.fc15

Comment 15 Fedora Update System 2012-02-13 20:13:53 UTC
389-ds-base-1.2.10.0-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.0-1.el5

Comment 16 Fedora Update System 2012-02-14 16:30:21 UTC
389-ds-base-1.2.10.1-1.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.1-1.fc15

Comment 17 Fedora Update System 2012-02-23 15:50:10 UTC
389-ds-base-1.2.10.2-1.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.2-1.fc15

Comment 18 Fedora Update System 2012-02-23 15:50:45 UTC
389-ds-base-1.2.10.2-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.2-1.el5

Comment 19 Fedora Update System 2012-02-28 09:51:51 UTC
389-ds-base-1.2.10.2-1.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2012-03-05 23:13:27 UTC
389-ds-base-1.2.10.3-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.3-1.el5

Comment 21 Fedora Update System 2012-03-27 14:04:34 UTC
389-ds-base-1.2.10.4-2.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.4-2.el5

Comment 22 Fedora Update System 2012-03-29 19:21:12 UTC
389-ds-base-1.2.10.4-3.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/389-ds-base-1.2.10.4-3.el5

Comment 23 Fedora End Of Life 2012-08-07 20:26:40 UTC
This message is a notice that Fedora 15 is now at end of life. Fedora
has stopped maintaining and issuing updates for Fedora 15. It is
Fedora's policy to close all bug reports from releases that are no
longer maintained. At this time, all open bugs with a Fedora 'version'
of '15' have been closed as WONTFIX.

(Please note: Our normal process is to give advanced warning of this
occurring, but we forgot to do that. A thousand apologies.)

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, feel free to reopen
this bug and simply change the 'version' to a later Fedora version.

Bug Reporter: Thank you for reporting this issue and we are sorry that
we were unable to fix it before Fedora 15 reached end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora, you are encouraged to click on
"Clone This Bug" (top right of this page) and open it against that
version of Fedora.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

The process we are following is described here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping


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