Bug 580781 - schema modify during schema reload task causes deadlock
Summary: schema modify during schema reload task causes deadlock
Keywords:
Status: CLOSED DUPLICATE of bug 528567
Alias: None
Product: 389
Classification: Retired
Component: Schema
Version: 1.2.6
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Rich Megginson
QA Contact: Chandrasekar Kannan
URL:
Whiteboard:
Depends On:
Blocks: 434914 389_1.2.6
TreeView+ depends on / blocked
 
Reported: 2010-04-09 03:08 UTC by Rich Megginson
Modified: 2015-01-04 23:41 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-04-09 15:18:24 UTC
Embargoed:


Attachments (Terms of Use)

Description Rich Megginson 2010-04-09 03:08:54 UTC
I'm not sure about the ordering - but if a schema reload task and a schema modify happen at the same time, the server will deadlock:

The cn=schema modify stack:
#0  0x0000003db240aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x0000003dc4a22ffd in PR_WaitCondVar () from /usr/lib64/libnspr4.so
#2  0x0000003dc4a13ff2 in PR_RWLock_Rlock () from /usr/lib64/libnspr4.so
#3  0x00002b7ae3b06d18 in slapi_be_Rlock (be=0x88cd120)
    at ../ds.git/ldap/servers/slapd/backend_manager.c:436
#4  0x00002b7ae3b412b4 in mtn_get_be (target_node=0x8993c00, pb=0x896d530, 
    be=0x56eefe48, index=0x56eefe78, referral=0x56eefe40, 
    errorbuf=0x56ef0650 "") at ../ds.git/ldap/servers/slapd/mapping_tree.c:2571
#5  0x00002b7ae3b3fbd8 in slapi_mtn_get_first_be (node_list=0x8993c00, 
    node=0x56eefe58, pb=0x896d530, be=0x56eefe48, be_index=0x56eefe78, 
    referral=0x56eefe40, errorbuf=0x56ef0650 "", scope=0)
    at ../ds.git/ldap/servers/slapd/mapping_tree.c:1744
#6  0x00002b7ae3b40530 in slapi_mapping_tree_select_all (pb=0x896d530, 
    be_list=0x56ef0220, referral_list=0x56eeff00, errorbuf=0x56ef0650 "")
    at ../ds.git/ldap/servers/slapd/mapping_tree.c:2116
#7  0x00002b7ae3b4a12b in op_shared_search (pb=0x896d530, send_result=1)
    at ../ds.git/ldap/servers/slapd/opshared.c:392
#8  0x00002b7ae3b58d4d in search_internal_callback_pb (pb=0x896d530, 
    callback_data=0x56ef4b50, 
    prc=0x2b7ae3b5880b <internal_plugin_result_callback>, 
    psec=0x2b7ae3b5870b <internal_plugin_search_entry_callback>, 
    prec=0x2b7ae3b5878b <internal_plugin_search_referral_callback>)
    at ../ds.git/ldap/servers/slapd/plugin_internal_op.c:761
#9  0x00002b7ae3b588e0 in search_internal_pb (pb=0x896d530)
    at ../ds.git/ldap/servers/slapd/plugin_internal_op.c:611
#10 0x00002b7ae3b58677 in slapi_search_internal_pb (pb=0x896d530)
    at ../ds.git/ldap/servers/slapd/plugin_internal_op.c:515
#11 0x00002b7ae3b590e7 in slapi_search_internal_get_entry (dn=0x88d5ab0, 
    attrs=0x0, ret_entry=0x56ef4cd8, component_identity=0x89d4870)
    at ../ds.git/ldap/servers/slapd/plugin_internal_op.c:891
#12 0x00002b7ae7d039c1 in mep_pre_op (pb=0x2aaaac1711d0, modop=4)
    at ../ds.git/ldap/servers/plugins/mep/mep.c:1667
#13 0x00002b7ae7d03cf4 in mep_mod_pre_op (pb=0x2aaaac1711d0)
    at ../ds.git/ldap/servers/plugins/mep/mep.c:1781
#14 0x00002b7ae3b54647 in plugin_call_func (list=0x89e07e0, operation=405, 
    pb=0x2aaaac1711d0, call_one=0)
    at ../ds.git/ldap/servers/slapd/plugin.c:1417
#15 0x00002b7ae3b54528 in plugin_call_list (list=0x89adcf0, operation=405, 
    pb=0x2aaaac1711d0) at ../ds.git/ldap/servers/slapd/plugin.c:1379
#16 0x00002b7ae3b52b0b in plugin_call_plugins (pb=0x2aaaac1711d0, 
    whichfunction=405) at ../ds.git/ldap/servers/slapd/plugin.c:372
#17 0x00002b7ae3b449f2 in op_shared_modify (pb=0x2aaaac1711d0, pw_change=0, 
    old_pw=0x0) at ../ds.git/ldap/servers/slapd/modify.c:785
#18 0x00002b7ae3b43b3b in do_modify (pb=0x2aaaac1711d0)
    at ../ds.git/ldap/servers/slapd/modify.c:349
#19 0x0000000000413054 in connection_dispatch_operation (conn=0x2aaaaaaafb38, 
    op=0x2aaaac18b9b0, pb=0x2aaaac1711d0)
    at ../ds.git/ldap/servers/slapd/connection.c:579
#20 0x00000000004146ca in connection_threadmain ()
    at ../ds.git/ldap/servers/slapd/connection.c:2294
#21 0x0000003dc4a2867d in ?? () from /usr/lib64/libnspr4.so
#22 0x0000003db240673d in start_thread () from /lib64/libpthread.so.0
#23 0x0000003db18d3d1d in clone () from /lib64/libc.so.6

The schema reload thread stack:
#0  0x0000003db240aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x0000003dc4a22ffd in PR_WaitCondVar () from /usr/lib64/libnspr4.so
#2  0x0000003dc4a13fa6 in PR_RWLock_Wlock () from /usr/lib64/libnspr4.so
#3  0x00002b7ae3b06d36 in slapi_be_Wlock (be=0x88cd120)
    at ../ds.git/ldap/servers/slapd/backend_manager.c:442
#4  0x00002b7ae3b73a1a in slapi_reload_schema_files (
    schemadir=0x2aaaac130740 "/var/tmp/tet/schemaDir")
    at ../ds.git/ldap/servers/slapd/schema.c:4927
#5  0x00002b7ae8d6afde in schemareload_thread (arg=0x2aaaac1a8e80)
    at ../ds.git/ldap/servers/plugins/schema_reload/schema_reload.c:154
#6  0x0000003dc4a2867d in ?? () from /usr/lib64/libnspr4.so
#7  0x0000003db240673d in start_thread () from /lib64/libpthread.so.0
#8  0x0000003db18d3d1d in clone () from /lib64/libc.so.6

Comment 1 Rich Megginson 2010-04-09 15:18:24 UTC

*** This bug has been marked as a duplicate of bug 528567 ***


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